STM32 HAL SWD下载与串口通信

这篇具有很好参考价值的文章主要介绍了STM32 HAL SWD下载与串口通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、SWD下载方式介绍

SWD是ST公司推出的开源的四线下载方式,分别为3V3、SWD、SWCLK、GND,相比JTAG等可以用较少的线来实现下载和仿真。
STM32 HAL SWD下载与串口通信

二、SWD接线

首先你需要购买一个DAPLINK,tb购买15块钱左右。只需要接到STM32F103C8T6最小系统板上面的同样的这四个排针即完成接线。STM32 HAL SWD下载与串口通信
而对于类似正点原子的精英板等,则需要在JTAG的牛角排插口里面找到对应的这四个脚接线才能使用。
STM32 HAL SWD下载与串口通信

三、SWD下载问题

写于2022.4

首先需要在HAL库里面配置sys的debug方式
STM32 HAL SWD下载与串口通信
然后,需要在keil进行配置
STM32 HAL SWD下载与串口通信


写于2022.3
然而还没有那么简单,对于正点原子的精英板,我直接下载完全没问题,但是我使用stm32f103c8t6国产板子不可以直接下载,我找了一下,发现以下说明:
STM32 HAL SWD下载与串口通信

以下是我电脑keil上显示的情况,确实是国产芯片,盖字印成原厂stm32,在这里也要提醒大家,买芯片要注意价钱,到货之后可以看一下印字,如果印字明显质量不好,类似于盗版书籍,大概率是国产货。
STM32 HAL SWD下载与串口通信
不过我没有按照上面的说明解决这个问题,我也不清楚我这个芯片是什么厂家制造的,卖家也一问三不知。然后我试了一下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中启动
——引用上面链接
同时需要在STM32 HAL SWD下载与串口通信这个地方STM32 HAL SWD下载与串口通信设置为CMSIS-DAP Debugger
点击SeetingsSTM32 HAL SWD下载与串口通信速度设置为1M,高速不一定可以下载。STM32 HAL SWD下载与串口通信将"Reset and Run"打勾即可正常下载。

因为使用BootLoader下载、启动都非常的麻烦,当然只是这个国产芯片是这样,我用正点原子的精英板原厂的stm32f103zet6,不需要动boot,所以我在自己打的核心板上将这个排针和跳帽的组合,改成的使用开关,这样一定程度上会方便一点。不过我新的自己打的核心板使用的是自己买的原厂stm32芯片,估计也不需要那么麻烦了。STM32 HAL SWD下载与串口通信
STM32 HAL SWD下载与串口通信

四、串口通信

HAL库配置
STM32 HAL SWD下载与串口通信
STM32 HAL SWD下载与串口通信
接线
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


总结

本文仅仅简单介绍了国产stm32f103最小核心板的swd下载和串口通信。创作不易,希望大家可以点赞支持一下!文章来源地址https://www.toymoban.com/news/detail-435122.html

到了这里,关于STM32 HAL SWD下载与串口通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32L4 HAL库通过串口通信改变PWM占空比

    使用串行通信的目的是为了让上位机能控制STM32来改变PWM的输出 这里用的是定时器TIM4的3通道,当然也可以改为其他的定时器,具体请参考手册 偷下懒,直接拿正点原子的例子程序修改了一下。 示例用的是UART1 引脚是PA9(TX),PA10(RX) 主要修改的地方在接收数据的部分,我用l

    2024年02月15日
    浏览(45)
  • openmv和STM32串口通信识别条形码、二维码(HAL库)

    因为自己的毕设用到了条形码识别,所以在这里写一篇关于使用openmv识别条形码和二维码并且与STM32实现串口通讯,希望能帮到以后用到这一模块的同学,STM32方面我使用的是STM32F103RCT6,并且使用HAL进行编写代码。 OpenMV端:由图知UART_RX—P5 ------ UART_TX—P4 2.STM32端:这里我使用

    2023年04月13日
    浏览(50)
  • HAL库 STM32运用DMA与IDLE中断实现高效串口通信 (附代码)

    最近想做一个控制电机的项目,其中会用到Pytho与单片机STM32之间的互同,最近也在看一些关于数据通信和拆包的相关知识,所以记录一下这段时间里对两者之间的互通所做的事情和发现的问题,以供自己和大家参考。 单片机的串口是我们常用的与电脑通信的外设,本次与P

    2024年01月22日
    浏览(57)
  • 【STM32】HAL库UART含校验位的串口通信配置BUG避坑

    【STM32】HAL库UART含校验位的串口通信配置BUG避坑 UART通过一条线就能完成数据的发送 另外一条线则完成数据的接收 所以一共是两条线 TX RX UART在空闲时为低电平 时钟周期由波特率确定 通常是115200bit/s UART协议由四个部分组成: 起始位: 固定低电平 1个时钟周期 数据域: 通常

    2024年01月20日
    浏览(50)
  • STM32机器人控制开发教程No.4 使用串口通信控制电机(基于HAL库)

    在机器人控制中,单片机(Arduino/STM32)与上位机(Raspberry Pi/NVIDIA Jetson nano)之间的通信经常采用串口通信的方式,那应该如何使用STM32的串口通信以及根据自己定义的协议来完成数据的接收与发送呢?在本篇文章中将给你演示如何通过自定协议来完成对电机的控制以及获取编码

    2023年04月25日
    浏览(58)
  • STM32-HAL库串口DMA空闲中断的正确使用方式+解析SBUS信号

    能够点进这篇文章的小伙伴肯定是对STM32串口DMA空闲中断接收数据感兴趣的啦,今天用这一功能实现串口解析航模遥控器sbus信号时,查阅了很多网友发布的文章(勤劳的搬运工~),包括自己之前写过一篇博客 STM32_HAL库_CubeMx串口DMA通信(DMA发送+DMA空闲接收不定长数据)。本文

    2024年02月09日
    浏览(66)
  • STM32通过DMA方式实现串口通信

    目录 一、DMA工作原理  二、创建工程项目 三、编写代码 1.在main.c写入以下函数 2.main函数中的while循环中写入以下代码

    2024年02月15日
    浏览(45)
  • # STM32中断方式实现串口通信(标准库)

    主要任务 : 1)当stm32接收到字符“s”时, 停止持续发送 “hello windows!”; 当接收到字符“t”时, 持续发送 “hello windows!”; 2)当stm32接收到字符“stop stm32!”时,停止持续发送“hello windows!”; 当接收到字符“go stm32!”时,持续发送“hello windows!” 实验工具: (1)软件 标

    2024年02月11日
    浏览(34)
  • K210 UART串口通信介绍与 STM32通信

    目录 K210-UART串口通信相关函数: 使用K210串口的时候需要映射引脚: K210与STM32串口通信  发送单字节: K210端 STM32端 发送数据包 K210端 STM32端  K210的UART模块支持全双工通信,可以同时进行数据的发送和接收。在K210上使用UART串口通信,你可以连接外部设备,如传感器、显示器

    2024年03月23日
    浏览(48)
  • stm32串口通信(PC--stm32;中断接收方式;附proteus电路图;开发方式:cubeMX)

     单片机型号STM32F103R6: 最后实现的效果是,开机后PC内要求输入1或0,输入1则打开灯泡,输入0则关闭灯泡,输入其他内容则显示错误,值得注意的是这个模拟的东西只能输入英文 之所以用2个LED灯是因为LED电阻粗略一算就是100欧姆,所以懒得再去画其他的东西,真是天助我也

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包