一、SWD下载方式介绍
SWD是ST公司推出的开源的四线下载方式,分别为3V3、SWD、SWCLK、GND,相比JTAG等可以用较少的线来实现下载和仿真。
二、SWD接线
首先你需要购买一个DAPLINK,tb购买15块钱左右。只需要接到STM32F103C8T6最小系统板上面的同样的这四个排针即完成接线。
而对于类似正点原子的精英板等,则需要在JTAG的牛角排插口里面找到对应的这四个脚接线才能使用。
三、SWD下载问题
写于2022.4
首先需要在HAL库里面配置sys的debug方式
然后,需要在keil进行配置
写于2022.3
然而还没有那么简单,对于正点原子的精英板,我直接下载完全没问题,但是我使用stm32f103c8t6国产板子不可以直接下载,我找了一下,发现以下说明:
以下是我电脑keil上显示的情况,确实是国产芯片,盖字印成原厂stm32,在这里也要提醒大家,买芯片要注意价钱,到货之后可以看一下印字,如果印字明显质量不好,类似于盗版书籍,大概率是国产货。
不过我没有按照上面的说明解决这个问题,我也不清楚我这个芯片是什么厂家制造的,卖家也一问三不知。然后我试了一下BootLoader下载,我原本只是根据CH340转TTL需要这么做试一下的,解决问题之后发现有人写过这样的方法了。
https://blog.csdn.net/hurryuptowang/article/details/116567589
这个下载方式需要以下步骤:
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader;
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中;
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动
——引用上面链接
同时需要在这个地方设置为CMSIS-DAP Debugger
点击Seetings速度设置为1M,高速不一定可以下载。将"Reset and Run"打勾即可正常下载。
因为使用BootLoader下载、启动都非常的麻烦,当然只是这个国产芯片是这样,我用正点原子的精英板原厂的stm32f103zet6,不需要动boot,所以我在自己打的核心板上将这个排针和跳帽的组合,改成的使用开关,这样一定程度上会方便一点。不过我新的自己打的核心板使用的是自己买的原厂stm32芯片,估计也不需要那么麻烦了。
四、串口通信
HAL库配置
接线
PA9是TX,需要接SWD的RX端,PA10是RX,需要接SWD的TX端。
程序上,我不喜欢用prinft重定义。
#include"stdio.h"
uint8_t lcd[20];
sprintf((char*)lcd,"Ready!\r\n");
HAL_UART_Transmit(&huart1,lcd,20,50);
以上仅发送,如果要接收的话,最好配置成中断模式。可以参考一下z小旋的blog
https://blog.csdn.net/as480133937/article/details/105013368?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164872204216780274187981%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164872204216780274187981&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-3-105013368.nonecase&utm_term=%E4%B8%B2%E5%8F%A3&spm=1018.2226.3001.4450文章来源:https://www.toymoban.com/news/detail-435122.html
总结
本文仅仅简单介绍了国产stm32f103最小核心板的swd下载和串口通信。创作不易,希望大家可以点赞支持一下!文章来源地址https://www.toymoban.com/news/detail-435122.html
到了这里,关于STM32 HAL SWD下载与串口通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!