STM32 串口通讯 STM32 串口通讯是基于 STM32 微控制器的串口通信程序,提供技术核心代码。该程序使用了 C 库函数 printf 和自定义函数 MY_printf 函数,都是通过串口向显示器输出一串字符串。下面是对该程序的详细解释: 1. printf() 函数的重定向 在 STM32 串口程序中,printf() 函数需要被重定向到串口中。重定向是指用户可以自己重写 C 库函数,当连接器检查到用户编写了与 C 库函数相同名字的函数时,优先采用用户编写的函数。这样用户就可以实现对库的修改了。为了实现重定向 printf() 函数,需要重写 fputc() 这个 C 标准库函数,因为 printf() 在 C 标准库函数中实质是一个宏,最终是调用了 fputc() 这个函数的。 2. usart_config() 函数 usart_config() 函数是用来配置所用的 GPIO 口和 USART 函数的。该函数首先打开晶振 USART1 和 GPIOA 的时钟,然后配置 GPIO 端口,其中把 A.9 配置成 Tx 模式,A.10 配置为 Rx 模式。接着配置串口,设定比特率为 9600, 8 位数据,最后停止位 1。 3. USART_InitTypeDef 结构体 USART_InitTypeDef 结构体是用于配置 USART 的初始化结构体。该结构体包括了 USART 的波特率、数据位、停止位、奇偶校验位等配置信息。在 usart_config() 函数中,我们使用该结构体来配置 USART,设定比特率为 9600, 8 位数据,最后停止位 1。 4. GPIO_InitTypeDef 结构体 GPIO_InitTypeDef 结构体是用于配置 GPIO 的初始化结构体。该结构体包括了 GPIO 的模式、速度等配置信息。在 usart_config() 函数中,我们使用该结构体来配置 GPIO 端口,其中把 A.9 配置成 Tx 模式,A.10 配置为 Rx 模式。 5. RCC_APB2PeriphClockCmd() 函数 RCC_APB2PeriphClockCmd() 函数是用于打开或关闭外设时钟的函数。在 usart_config() 函数中,我们使用该函数来打开 USART1 和 GPIOA 的时钟。 6. USART_Cmd() 函数 USART_Cmd() 函数是用于控制 USART 的函数。在 usart_config() 函数中,我们使用该函数来使能 USART1。 7. MY_printf() 函数 MY_printf() 函数是自定义的 printf() 函数,该函数也是通过串口向显示器输出一串字符串。MY_printf() 函数的实现与 printf() 函数类似,也需要重写 fputc() 函数来实现串口输出。 STM32 串口通讯程序使用了 C 库函数 printf 和自定义函数 MY_printf 函数来实现串口通信。该程序对 USART 的配置、GPIO 的配置、printf() 函数的重定向等方面进行了详细的解释,为开发人员提供了有价值的参考。






















- 粉丝: 47
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 压缩空气储能系统建模:基于Python的多级压缩与换热机制探讨及其应用前景
- 云计算与游戏游戏行业运营数据分析.pptx
- 游戏网站策划书.doc
- 网络信息系统安全工作计划1.doc
- Kotlin-lite-lib-Kotlin资源
- 基于贝叶斯网络模型的公司高级管理人员薪酬满意度分析.doc
- 移动网大云计算题库.pdf
- 基于单片机的室内空气质量检测的设计开题报告.pdf
- 软件品质管理系列二项目策划规范.doc
- 电子商务实验项目及PS-Dw上机.doc
- 项目管理第章作业答案.doc
- 怎样在Dreamweaver中制作二级联动菜单.doc
- 常用EXCEL的VBA函数精选.doc
- 信息网络在大众健康教育中应用.pptx
- 图像的几何变换及其matlab实现(word文档良心出品).doc
- 虚拟化平台管理规范.doc


