当前位置: 首页 > 网络应用技术

STM32编程通常会看到问题和常见技术

时间:2023-03-07 13:18:29 网络应用技术

  在编写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