这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » ARM常见错误及解决方法(四)

共1条 1/1 1 跳转至

ARM常见错误及解决方法(四)

工程师
2020-12-17 12:57:13     打赏

#224-D …\HARDWARE\src\uart.c(398): warning: #224-D: the format string requires additional arguments
printf("RX Msg:%s\r\n"USART2_RX_BUF);
修改:格式字符串需要额外的参数

#18 …\HARDWARE\src\uart.c(398): error: #18: expected a “)”
printf("RX Msg:%s\r\n"USART2_RX_BUF);
修改:括号前缺少东西

#181-D …\HARDWARE\src\uart.c(399): warning: #181-D: argument is incompatible with corresponding format string conversion
printf(“process msg:%s %d\r\n”,&Process_ptr,&Process_ptr);
修改:参数与相应的格式字符串转换不兼容

#2548-D main.c(22): warning: #2548-D: multicharacter character literal (potential portability problem)
uchar buf[5] = {‘0xff’,‘0x01’,‘0x0a’,‘0xa0’,‘0x80’};
修改:表达式错误

#29 main.c(22): error: #29: expected an expression
u8 buf[6] = {};
修改:表达式错误,根据这种情况可修改为u8 buf[6] = {0}; / u8 buf[6];

#144 main.c(102): error: #144: a value of type “char *” cannot be used to initialize an entity of type “const uint8_t”(不能使用类型为“char *”的值初始化类型为“const uint8_t”的实体)
const uint8_t buf[6] = {“0xe1”,“0xff”,“0x0a”,“0xa0”,“0x01”,“0xaa”};
修改:我这里可能修改为const uint8_t buf[6] = {0xe1,0xff,0x0a,0xa0,0x01,0xaa};

#32 …\HARDWARE\src\uart.c(166): error: #32: expression must have arithmetic type
printf(“Show The Receive Msg:%02x-%02x-%02x-%02x-%02x-%02x\r\n”,(Receive_ptRX1-6)(Receive_ptRX1-5)(Receive_ptRX1-4)(Receive_ptRX1-3)(Receive_ptRX1-2)(Receive_ptRX1-1));
修改:(表达式具有算术类型),这里是缺少逗号
rintf(“Show The Receive Msg:%02x-%02x-%02x-%02x-%02x-%02x\r\n”,
(Receive_ptRX1-6),(Receive_ptRX1-5),(Receive_ptRX1-4),(Receive_ptRX1-3),(Receive_ptRX1-2),(Receive_ptRX1-1));

#12-D …\USER\stm32f10x.h(472): warning: #12-D: parsing restarts here after previous syntax error
} IRQn_Type;
修改
#67同时出现:
1
、(程序使用的芯片换成比原来flash小的芯片)找到STM32F10X_HD,将STM32F10X_HD里面的内容注释或删除
2
、(程序使用的芯片换成比原来flash大的芯片)找到STM32F10X_MD,将STM32F10X_MD里面的内容注释或删除
#65同时出现:
在错误行缺少”;”字符,应该是出现的do{}while();while后面

#186-D …\HARDWARE\src\Infrared-Timer3.c(120): warning: #186-D: pointless comparison of unsigned integer with zero(无符号整数与零的无意义比较)
if((bHex>=0)&&(bHex<=9))
修改bHex为无符号整型,“bHex>=0”没意义,可以改为if(bHex<=9)

#167 …\HARDWARE\src\Infrared-Timer3.c(326): error: #167: argument of type “uint32_t” is incompatible with parameter of type “uint8_t *”(声明不能再执行语句后面)
USB_TxWrite(ir_data,300);
修改 1、将执行语句放到声明语句后面
2
、指针类型不匹配,修改变量类型或强转

#2969-D …\HARDWARE\src\Infrared-Timer3.c(135): warning: #2969-D: “” followed by white space is not a line splice
修改:将“”里面的符号删除

#1514 …\HARDWARE\src\Infrared-Timer3.c(121): error: #1514: an empty initializer is invalid for an array with unspecified bound
u8 irtestbuf[]={};
修改:初始化无效,我这里可改为u8 irtestbuf[]={0}; u8 irtestbuf[2];

#11-D …\HEADWARE\init\init.c(1): error: #11-D: unrecognized preprocessing directive
#inclucde “init.h”
修改:关键字写错,我这里可改为#include “init.h”

#159 main.c(18): error: #159: declaration is incompatible with previous “flash_test” (declared at line 15)
void flash_test(void)
修改:该函数的使用在定义或声明函数的前面

#28 main.c(132): error: #28: expression must have a constant value
uint8_t Temp_Data[array_one][200] = {0};
修改:表达式必须有一个常量

欢迎跟帖留言~




关键词: 错误     解决     方法     error    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]