学习STM32单片机记录(1)

点灯小白 2020-05-30 10:49:00
刚拿到单片机(野火f103的开发板)时内心无比激动,时至今日,已经着手学习了两天,想记录一下自己学习的过程,以供后来回味。


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


欢迎各位前辈和大佬给点学习建议,让我能在嵌入式开发这条路上走的更远,也欢迎和我一样的新手小白来共同探讨在学习过程中遇到的问题。就写到这了,这是我第一次发帖,仅供自己学习,文中难免会有错误,若有错误,希望大家指出来,在此多谢了
...全文
179 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzh5508 2020-06-04
  • 打赏
  • 举报
回复
恭喜小伙子入坑了!

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧