先说说自己这两天遇到的问题,第一个是软件安装的问题,我先是下载了Keil5,再到官网上下载了F1的芯片包,这一切进行的都还顺利,接着我便开始试着烧录一个系统例程进单片机,这时问题来了,调试失败,一直有个错误,显示未找到core_cm3.o 文件,对于这个问题我在百度上找到了很多答案,有的人说是路径设置成了中文路径无法生成这个文件,有人说要在魔法棒内勾选C99语法,还有人说卸载Keil5重装Keil5MDK版,各说纷纭,我统统都试了一遍,依旧未解决,最后我改了系统的环境变量再重启重启计算机,接着再次重装了Keil5MDK版,且关闭了系统实时保护,资料也重新下载,就这样成了,问题就这么解决了,接下了就是进入正式编程环节,单片机入门从点灯开始,在学32前我已经学过了51,但还是得说差别真的很大,51直接进行位寻址而且别人已经帮你写好了头文件,只需知道哪个引脚控制哪个led灯,再给这个引脚一个低电平就能点亮小灯了,虽说32也是如此,给led灯一个低电平就能使他亮了,同样是给低电平,但对与我这个新手来讲32的点灯真是折腾了我好一会,有点不适应自己根据地址操控寄存器且是多个寄存器来点亮一个灯,先是打开对应IO口的时钟寄存器(好比人的心脏),再对其IO口的寄存器进行清零,再配置它的输出速度,最后再通过ODR寄存器给它一个低电平,就这样灯亮了,点个灯花了近一天时间,不过学会了怎么看手册配置寄存器,在这个过程中一直很煎熬,点灯多次失败,但点灯成功的喜悦瞬间融化了之前的所有,当用寄存器结构体指针操作寄存器进行点灯时,第二个问题出现了,自己写的结构体指针指不出寄存器,对比了配套资料的例程自己写的没有问题,几经辗转,这个问题还是解决了,这个问题估计有和我一样的新手也遇到过,解决方案是将自己的写的例程的文件夹全部改为英文(最好不要用中文做文件名),
Welcome predecessors and bosses give point learning advice, let me to go in the embedded development road, also welcomed the novice like me small white to discuss the problems encountered in the process of learning, write here, this is my first post, only for their own learning, the error is inevitable, if there are any errors, hope you point out, thanks a lot
CodePudding user response:
Congratulations guy into the pit!