1.ST-LINK调试
以stm32f103c8t6最小系统为例
1.1接线:
使用ST-LINK V2下载器时,无需再使用usb口给开发板供电。
stm32f103c8t6最小系统 | ST-LINK V2 |
SWCLK | SWCLK |
SWDIO | SWDIO |
GND | GND |
3.3V | 3.3V |
1.2keil配置:
1.2.1芯片选择
STM32F103C8
1.2.2启动文件、全局宏
stm32f103c8t6的flash是64KB,对应启动文件startup_stm32f10x_md.s
修改宏条件编译USE_STDPERIPH_DRIVER,STM32F10X_MD
1.2.3选择调试器
选择调试器ST-Link Debugger,支持Debug在线调试功能,Settings中选择SW
(看了别人说的时钟要在1M以下,尝试1M以上也没有问题,这里不太清楚,欢迎评论)
1.3下载:
编译通过后,LOAD即可,支持在线调试
2.虚拟串口收发数据
2.1通过虚拟串口通讯
最开始以为只要是搭好模拟串口,就可以模拟电脑、单片机串口发送数据,实际上还需要对指定芯片的USART外设进行配置,配置好怎么收发数据以后,才能正常模拟。所谓模拟串口收发,只是调试时不使用硬件,在软件环境下完全调试,该有的软件程序不能少哈哈。
2.2配置过程
2.2.1建立虚拟串口
2.2.2command命令设置
方法1:直接在command命令框输入
命令格式:
MODE COM1 115200,0,8,1
ASSIGN COM1 <S1IN> S1OUT
(使用哪个串口、波特率等参数按需要指定)
方法2:添加debug.ini文件,在debug文件中写入以上命令,并设置文件类型,之后在魔术棒里面添加这个文件,就能从文件里读取这些命令了。多次调试亲测有效,如有不对,欢迎指正。
2.2.3测试
以上配置完成后,keil5环境下的设置就完成了,此时keil5端就是模拟单片机端,模拟串口输出。
串口调试助手为计算机端,模拟串口输入。
2.2.4其它配置
2.2.4.1问题
使用stm32f103vet6芯片搭建工程,默认调试配置时,查询device database中调试使用的信息貌似不含寄存器信息。
在command命令框中,dir vtreg查询寄存器信息,确实不含S1IN、S1OUT寄存器信息。
2.2.4.2修改配置
修改调试配置后,在command命令框中dir vtreg查询寄存器时能找到寄存器,调试正常。
DARMSTM.DLL
-pSTM32F103VE
TARMSTM.DLL
-pSTM32F103VE