长按识别图中二维码可在网页进行浏览
https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE
点击上面的链接,登录即可下载
标注库文件
添加到工程中
添加效果如下
这次可以直接使用快捷键AlL Enter调出配置界面,添加头文件路径
添加后如下
把库文件自带的删除
修改三行代码 每个加一个取地址符号
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);
}
原因:缺少文件
处理:漏加的文件
编译通过:
用stlink下载
第一次下载使用STLINK可能需要更新以下固件,重新插拔几次点击更新即可。
STM32CubeIDE移植标准库_cubeide 标准库_white_loong的博客-CSDN博客
http://t.csdn.cn/dS2OP
联系客服