STM32自学笔记第六天
=========STM32串口===================================
一、什么是串口(USART)
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
二、处理器与外部设备通信的两种方式:
并行通信
-传输原理:数据各个位同时传输。
-优点:速度快
-缺点:占用引脚资源多
串行通信
-传输原理:数据按位顺序传输。
-优点:占用引脚资源少
-缺点:速度相对较慢
三、通道方式
对于大部分的芯片,在通信方面节省IO,所以串口作为 MCU 的重要外部接口, 同时也是软件开发重要的调试手段, 其重要性不言而喻。
现在基本上所有的 MCU 都会带有串口。而STM32F407ZGT6 最多可提供 6 路串口。
串行通信按传送方向分:
a.单工:
数据传输只支持数据在一个方向上传输(收音机、遥控器)
b.半双工:
允许数据在两个方向上传输,但是,在某一时刻,只允许数
据在一个方向上传输,它实际上是一种切换方向的单工通信;(对讲机)
c.全双工:
允许数据同时在两个方向上传输,因此,全双工通信是两个
单工通信方式的结合,它要求发送设备和接收设备都有独立
的接收和发送能力。(电话机)
四、STM32串口
1、全双工通信方式
2、有两根数据线(信息线)
RXD :接受数据 Receive(rx) Data
TXD :发送数据 Transmit(tx) Data
3、串口模块连接方式
MCU MCU
TXD——–>RXD
RXD<——–TXD
4、串口波特率
单片机或计算机在串口通信时的速率。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如数据传送速率为240b/s, 而每个字符格式包含10位(1个起始位,1个停止位,8个有效数据位),这时的波特率为240 baud (波特),比特率(有效数据位的传送速率)为 240*10=2400 bps(比特每秒)。(但是一般调制速率大于波特率,比如曼彻斯特编码)。波特率,可以通俗的理解为一个设备在一秒钟内发送(或接收)了多少码元的数据。它是对符号传输速率的一种度量,1波特即指每秒传输1个码元符号(通过不同的调制方式,可以在一个码元符号上负载多个bit位信息),
1比特每秒是指每秒传输1比特(bit)。
9600bps:每秒传输9600位数据数据 那么发送的有效字节:9600/10 = 960个字节
五、USART1配置流程
1、理解电路原理图
PA9 — TX(发送端)
PA10 — RX(接收端)
2、串口时钟使能,GPIO 时钟使能。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
3、 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10; //引脚9 10
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //复用功能
//4、初始化IO口为复用功能输出。
GPIO_Init(GPIOA, &GPIO_InitStruct);
4、 GPIO 初始化设置:要设置模式为复用功能。
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //选择TX
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //选择RX
5、串口参数初始化:设置波特率,字长,奇偶校验等参数。
USART_Init(USART1,&USART_InitStruct);
6、开启中断并且初始化 NVIC,使能中断(如果需要开启串口中断才需要这个步骤)。
7、选择中断方式
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
8、使能串口。
TIM_Cmd
7) 编写中断处理函数:函数名格式为 USARTx_IRQHandler(x 对应串口号)。
六、蓝牙操作
1、下载蓝牙开发资料
2、双鸡安装USB转TTL驱动(D:\STM32\006\资料\串口调试助手和驱动\CH341SerSetup.exe)
3、按照图示当的连接方法,连接蓝牙
4、按住蓝牙模块的按键,再将USB转TTL插入电脑,插入电脑后,蓝牙模块的LED灯处于慢闪状态(慢闪状态表示处于AT指令操作模式)
快闪处于数据透传模式(透传相当数据无障碍传输)
5、打开蓝牙AT指令手册(D:\STM32\006\资料\HC-05\HC-05\HC05指令集.pdf),并安装AT调试的串口助手软件(波特率:38400)
(D:\STM32\006\资料\HC-05\HC-05\HC-05AT测试版\setup\setup.exe),安装后使用AT指令修改蓝牙名字
AT+NAME=CHEN (软件当中记得按回车)
6、将USB转TTL重新插入电脑,让蓝牙处于数据透传模式(LED处于快闪)
7、安装安卓手机APK(D:\STM32\006\资料\HC-05\BlueSPP_downcc.apk),连接蓝牙,并使用APP连接
8、打开一个串口软件(波特率:9600),此时手机串口助手的数据即可与电脑串口数据交互