在编写STM32程序时,发现主函数没有周期,但是该程序自动运行3次以找到信息并最终解决。
嵌入式软件与PC编程不同。如果C语言是从PC下的主函数返回的,它将返回操作系统,因此不会造成错误。对于裸机,您不应退出主函数,否则会出现错误。此错误是不期望返回的。
如果您不需要周期,请在最后添加
在设置中,选择了自动操作。
单击魔术蓝色 - >单击debug->单击设置 - >选择闪存下载 - >取消重置和...
也许我不小心更改了闪存开始地址
单击魔术杆 - > target->在IROM1为0x08000000之后更改地址
没有响应对应的标头文件
添加
我们必须在开发中使用strCMP(S1,S2)来比较字符串S1和S2是否一致。但是有时候,我们不需要比较整个数组,而只需要比较前一个n位是否一致。目前,我们可以使用:strnCMP(S1,S2,N)功能。
strcmp(S1,S2)是从左到右的相对较小的字符。当出现第一个不同的字符时,它相对较大。根据ASCII0;如果上一个字符串大于第二个字符串,则结果是正整数。如果先前的字符串小于第二个字符串,则结果为负整数。
StrnCMP(S1,S2,N)函数是两个函数中两个字符的大小。前面n个字符中的比较规则与strCMP函数相同。它大于第二个函数,结果是正整数。如果前一个小于第二个,则结果为负整数。
STRNCMP函数指定比较大小字符。将strCMP函数与整个字符进行比较,直到不同的字符或“ 0”为止,必须比较最后的0'。
在开发中,我们经常使用UINT32_T(U32),UINT16_T(U16)和UINT8_T(U8)。
以下方式通常用于开发。
a =(要转换为)b;
如下所示,该程序被分配给int的U16类型A
有时,当我们编写程序时,我们会遇到一些需要重置的特殊情况,但在任何时间都无法手动重置。目前,我们可以在程序中设置软件重置。
UINT32_T(U32):四个字节
UINT16_T(U16):两个字节
uint8_t(u8):字节
原始:https://juejin.cn/post/7101613091879649287
