一、确定使用哪个串口
根据开发板的原理图确定CH340芯片与串口几相连,如下图,可知CH340通过跳线与单片机的PA9、PA10相连,查看数据手册可知与CH340相连的是串口1,或在CubeMX中也可以确定与CH340相连的是串口1。
二、配置CubeMX
2-1、配置时钟源,高速时钟选择晶体谐振器(外部晶振),低速时钟暂不做设置默认即可
2-2、配置Debug(调试接口),选择SW,注:如果不配置Debug会造成程序下载一次后就烧不进去,如果因忘记配置无法烧录可在点击烧录时按一下复位(记得配置后再烧录,有时也会烧不进去,多试几次就行)
2-3、配置时钟树,选择时钟源和设置时钟频率
2-4、配置USART1(串口1)为异步通信,其余默认即可,要记住默认波特率为115200,后面调试助手会用到,USART1_RX为数据接收端(PA10),USART1_TX为数据发送端(PA9)
注意:数据接收端(PA10)是与CH340的TXD相连,数据发送端(PA9)是与CH340的RXD相连,这是因为单片机的数据发送端是向CH340发送数据的,对CH340来说就是接收端
MCU:TXD->CH340:RXD
MCU:RXD->CH340:TXD
2-5、设置工程的保存路径及名称
三、编写串口打印相关程序
3-1、编译程序,配置下载器,我用的是DAP_Link(st-link,jlink配置也几乎相同)
3-2、勾选使用微库,并导入头文件stdio.h
3-3、对prinf函数进行重定向
/************** printf重定向 **************/
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/5c982a3e7366d5bca85a5f395374f3cb.png)
![img](https://img-blog.csdnimg.cn/img_convert/ff4ae3783167f6834a19fdca078af470.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/67476ebf0236ba7160f1694677addb13.png)
![img](https://img-blog.csdnimg.cn/img_convert/848e7aa8e13595c823b307fe07121eb1.png)
![img](https://img-blog.csdnimg.cn/img_convert/69662057142ad935e0ed29595aaef61b.png)
![img](https://img-blog.csdnimg.cn/img_convert/baaec441101adbe05a861b93623227fe.png)
![](https://img-blog.csdnimg.cn/img_convert/34004d30beca5d8b7643f1e5d259ddad.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!