網(wǎng)站錨點(diǎn)鏈接怎么做南京網(wǎng)絡(luò)推廣外包
用STCubeIDE進(jìn)行標(biāo)準(zhǔn)庫開發(fā)
1、CubeIDE介紹
https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE
2、CubeIDE下載
點(diǎn)擊上面的鏈接,登錄即可下載
3、搭建Demo工程
新建一個(gè)工作空間
創(chuàng)建一個(gè)工程
選擇芯片-STM32F103C8T6
填寫工程信息
添加標(biāo)準(zhǔn)庫到工程
標(biāo)注庫文件
添加到工程中
配置工程屬性
添加效果如下
添加標(biāo)準(zhǔn)庫頭文件路徑
這次可以直接使用快捷鍵AlL+Enter調(diào)出配置界面,添加頭文件路徑
添加后如下
添加標(biāo)準(zhǔn)庫的源文件到工程中
再次確認(rèn)添加的頭文件跟源文件
添加全局宏定義用于工程屬性
移除重復(fù)的啟動文件
把庫文件自帶的刪除
修改內(nèi)核文件
修改三行代碼 每個(gè)加一個(gè)取地址符號
uint32_t __STREXB(uint8_t value, uint8_t *addr)
{uint32_t result=0;//__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}/*** @brief STR Exclusive (16 bit)** @param value value to store* @param *addr address pointer* @return successful / failed** Exclusive STR command for 16 bit values*/
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{uint32_t result=0;//__ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}/*** @brief STR Exclusive (32 bit)** @param value value to store* @param *addr address pointer* @return successful / failed** Exclusive STR command for 32 bit values*/
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{uint32_t result=0;//__ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );__ASM volatile ("strex %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );return(result);
}
編寫用戶自定義的LED代碼編譯發(fā)現(xiàn)了錯(cuò)誤
原因:缺少文件
處理:漏加的文件
編譯下載
編譯通過:
用stlink下載
注意事項(xiàng):
第一次下載使用STLINK可能需要更新以下固件,重新插拔幾次點(diǎn)擊更新即可。
后記:如果不小心改動了IED默認(rèn)布局可以這樣重新恢復(fù)默認(rèn)
參考博客:
STM32CubeIDE移植標(biāo)準(zhǔn)庫_cubeide 標(biāo)準(zhǔn)庫_white_loong的博客-CSDN博客
http://t.csdn.cn/dS2OP