建好后编译工程出现错误:
1.Error while running C/C++ Compiler
网上查了下,说这个错误是IAR没有破解或者破解不成功,可能是对的,但这里不是因为这个问题。实际上是由于用习惯了KEIL,转换到IAR的时候启动文件选择错误,选择了KEIL的启动文件
.\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f303xe.s
实际上查看库文件中这个文件的上级目录可以看到
.\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates
这里有几种IDE的文件夹,应该选择\iar文件夹下面的启动文件
.\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\iar\startup_stm32f303xe.s
另外没有选择或者选错了芯片的型号也可能出现这个错误,而且是和其他错误(Error[Ta097])混在一起出现的,此时只需要在General Option里选择正确的芯片型号即可解决。
2.Error[Pe020]: identifier "FILE" is undefined
这个是在串口重定向使用printf函数的时候,重写int fputc(int ch,FILE *f);出现的错误,这个函数是C标准库里面的,解决方法
工程->右键->Options->Generic Options->Libraries Configuration
将Library下由Normal改为Full
3.工程无法下载和调试
在Options->Debugger->Setup下选择ST-LINK,->Download下选择Use flash loader,然后点进ST-LINK,选中SWO。