bigfanofloT 发表于 2016-10-26 13:53:33

STM32版Gokit零基础开发之串口UART

本帖最后由 bigfanofloT 于 2016-10-26 14:04 编辑

1.串口通信简介
串口通讯( Serial Communication)是一种设备间很常用的串行通讯方式,串口按位( bit)发送和接收字节,可以在使用一根线发送数据的同时用另一根线接收数据,称为全双工通信。大部分电子设备都支持该通讯设备,广泛用于各类仪器仪表、工业检测以及自动控制领域。通信协议是需要通信的双方所达成的一种约定,它对包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,通信双方都必须共同遵守。
2.STM32的USART 简介
STM32 有多个 USART 外设用于串口通讯, 英文全称是: Universal Synchronous Asynchronous Receiver and Transmitter。阅读过RM0008 Reference Manual 的会发现, STM32 的串口非常强大,它不仅支持最基本的通用串口同步、串口通信, 还有 LIN 总线功能( 局域互联网)、IRDA 功能( 红外通信)、 SmartCard 功能。 本文介绍最基本的利用串口来输出调试信息。另外,它还具有UART外设,英文全称是:Universal Asynchronous Receiver and Transmitter, UART 是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。 同步通信中传输方和接收方使用同步时钟,平时用的串口通信基本都是 UART。USART 发送接收有三种基本方式:轮询、中断和 DMA。
串口外设架构如图:

主要引脚功能:
TX: 发送数据输出引脚。
RX: 接收数据输入引脚。

8 位字长发送时序
3.串口通信硬件设计
CP2102是一个实现 USB 转串口的IC。 CP2102芯片中的 TXD 和 RXD 与STM32F103CBT6的 USART1_RXD 和 USART1_TXD 相连接。 因此PC端需要安装CP2102的驱动程序,具体安装方法请查阅社区教程。

4.STM32CubeMX具体配置

以轮询为例:




用户定义自己的 C 语言库函数,连接器在连接时优先自动使用这些新的功能函数。这个过程叫做重定向 C 语言库函数。 举例子来说, 我们的 USART 口,本来库函数 fqutc()是把字符输出到调试器控制窗口去的, 但由于我们把输出设备改成了UART 端口,这样一来,所有基于 fputc()系列函数输出都被重定向到 UART 端口上去了。 代码中 int fputc() 作用是重定向 C 库函数printf。

主函数打印经典的Hello World,HAL_Delay()是HAL库内置延时API,时基是1ms。


烧录固件,连接PC打开串口调试助手即可看到打印的信息。
工程文件下载:

有视频有真相:http://player.youku.com/player.php/sid/XMTc3NTEzMTU1Mg==/v.swf

PDF报表:








狂龙治中 发表于 2016-10-26 15:39:55

没看懂。。。:Q

bigfanofloT 发表于 2016-10-26 16:16:33

狂龙治中 发表于 2016-10-26 15:39
没看懂。。。

先看看前面的关于STM32CubeMX的介绍

mzh 发表于 2016-10-27 14:53:10

很详细,谢谢楼主
页: [1]
查看完整版本: STM32版Gokit零基础开发之串口UART