51单片机学了不少,是时候再深入学一些其他的,选择学习STM32是因为学习资源丰富,通用性强,芯片的性能也很强大。正所谓“工欲善其事,必先利其器”。硬件设备直接买最小系统来玩,配置相关的软件环境呗。
软件版本为Keil MDK4.12,为了也兼容51就再装C51了,这时候问题就来了,说找不到编译文件,无法编译目标项目。由于这篇文章后面才写了,我那时没有截图,忘了具体的错误提示是什么。后面再网上找了一下,有一种情况和我的情况相同,是由于装了ARM再装51,说是导致编译器出现异常了,我就全部删掉重新安装就好了。果然我是学渣,现在要好好做好记录,养成良好习惯。这是遇到的第一个问题。
1.错误:
CORE\startup_stm32f10x_md.s(1): error: A1167E: Invalid line start
。。。。。。。。。后面还有很多,在网上搜了一下,有说是编码方式不对,要将文件由 UTF-8 编码改为 ANSI 编码,这方法我不敢想,好多个文件要改,太麻烦了。也有说是编译器不能识别注释。
解决办法:
MDK的在工程上点右键,选择options,选择Asm选项,在Misc Controls框框中输入 --cpreproc
意思所在汇编armasm编译汇编代码之前先用armcc将代码中C注释预编译掉
参考:http://www.xuebuyuan.com/1554024.html
2.错误:
CORE\startup_stm32f10x_md.s(41): error: A1163E: Unknown opcode _sidata , expecting opcode or Macro
解决办法:
在错误代码对应位置前加TAB,不能定格
3.错误:
CORE\startup_stm32f10x_md.s(31): error: A1137E: Unexpected characters at end of line
解决办法:
在网上找了很多方法都不行。。。。。头都大了。困了,睡醒第二天晚上重新新建项目,一次成功!是因为新装软件重新启动才正常?还是新建项目的步骤出现问题?我觉得是后者,所以解决不了的问题,重来一遍吧