keil5进行stm32编程时常遇到的问题和ST-LINK在线仿真的连接问题
本文记录原因
最近一直在尝试usb的自定义键盘、无刷电机和pcb的一些东西,很久没使用stm32编写程序了。在浏览购物网站的时候发现很多便宜的小系统板。
使用小的系统板原因
1,在网上看到板子很便宜,以前很少看见,但现在网上对这方面开发的人员很多,也使得价格压下来了。
2,虽然没有很多的外设,但相比于已经固化的开发板来说,不需要考虑外设的干涉跳线,这样做并不需要大容量的开发来说还是很方便的。
3,以前用的时STM32F103ZET6的板子,那个外设太多,每次连接和拆线需要考虑太多跳线帽的插拔。
通过实例分析使用在线仿真的原因
1,当读取ADC数据时,若不使用在线仿真,则为了查看数据就需要使用串口和显示屏等,但这就需要添加串口程序或显示驱动程序。
2,想要查看某些数据变化,但程序想要停止,就需要修改程序到自己想要停止的地方,每次都需要重新下载程序。
3,下载程序过程中的多次插拔下载引脚也是很苦恼的事(arduino不用),可以使用IAP,自己写个能触发进入下载的程序,但那样不免增加程序复杂度。
4,上面遇到的几种情况,使用在线模拟仿真可以很好的解决:通过查看变量的参数知道ADC的值大小;通过单步调试/断点调试可以知道那个数据变化并在这个地方停止;下载过程中不需要插拔下载引脚,因为这里下载指定了flash的地址。
keil5进行编程中遇到问题
一个需要注意的问题,需要使用电脑直连的usb,因为usbhub的连接可能会导致ST-Link连接不成功
编译时遇到“…\SYSTEM\sys\stm32f10x.h(244): error: #67: expected a “}””
参考、
选择正确的芯片后,这里的预处理的定义可以删除了。
仿真器在线仿真的认知
仿真器使用和理解视频
使用st-link仿真的基本操作可以参考下面两个
参考1,参考2
在使用仿真器下载程序时遇到问题“Error: Flash Download failed - Cortex-”
参考
这种下载不成功的原因一般分三种:
1,设置下载接口的方式不同,
2,硬件连接的不正确,
3,芯片的flash地址和下载的地址不正确
1和2的错误可以参考上面两个参考连接。3,问题参考
从总体来说,嵌入式相关的内容都是软硬件相关联,因此也会遇到各种各样奇葩问题。