STM32串口通信
一.数据传送的方式
串行通讯 速度慢,占用资源少,距离远
并行通讯 速度快,占用资源多
二.通信方式
单工通讯 一个固定发送,一个固定接受
半双工通讯 对讲机
全双工通讯 电话
三.数据同步方式
1. 异步通信
1.数据是以字符为单位组成字符帧传输的。
2.字符帧由发送端一帧一帧的发送,每帧数据均是低位在前,高位在后,通过传输线被接收端一帧一帧的接收。
3.发送端和接收端可以有各自独立的时钟来控制数据的发送和接收,这两个时钟各自独立,互不同步。
4.接收端依靠字符帧格式来判断发送端是何时开始和结束发送的。
5.字符帧也叫做数据帧,由起始位,数据位,奇偶校验位,停止位等部分组成,是异步通信的一个重要指标。
6.同步通信的另一个重要指标是波特率。
2.同步通信
1.同步是指在约定的通信速率下,发送端和接收端的时钟信号和相位始终保持一致,保证通信双方在发送和接收数据时具有完全一致的定时关系。
2.同步通信把许多字符组成一个信息帧,每帧的开始用同步字符来表示。
3.在绝大多数场合下,发送端和接收端,采用的都是同一个时钟,所以在传送数据的同时还要发送时钟信号,以便接收端可以使用时钟信号来确定每一个信息位。
4.同步通信一次通信只能传送一帧信息。
异步(无时钟) 用奇偶校验位来保证信息的同时接受
四.通信速率
比特率:每秒传输的二进制位 bit
波特率:每秒传输的码元个数串口
一个二进制表示一个码元
五.常用通信协议
TTL电平:数字芯片的电平、单片机 (0~5v)
RS232电平:电脑串口的电平,负逻辑
usb转串口主要用于电脑和其他设备连接,使用时电脑要 下载电平转换芯片的驱动
六.串口基础知识
串口单片机是有默认的对应引脚,要看芯片手册
串口包
起始位:有一个逻辑0表示(第一个低电平),表示传输数据开始
有效数据位:紧跟着起始位的就是有效数据位长度位5、6、7或8位长
校验位:可选,目的为数据坑干扰性
停止位 :0.5,1,1.5,2个逻辑的数据位表示高电平
校验方法
奇校验:有效数据和校验位中1的个数为奇数。10010110,四个1,校验位为1,加上一个位,九个位传输
偶校验:有效数据和校验位中1的个数为偶数。10010110,四个0,校验位为0,加上一个位,九 个位传输
0校验:校验位总为0
1校验:校验位总为1
无校验:数据包不含校验位
我们要写数据(发送)不是直接发出去的,是先到发送数据寄存器中存储,然后到发送移位寄存器,一位一位的发送出去。
1.TX:数据发送端口
2. RX:数据接收端口
3. SW.RX.在单线和智能卡模式下接收数据,属于内部端口,没有实际的外部引脚
4. RTS:在硬件流控制下用于指示设备准备好可以接收数据了,低电平表示可以接收数据。
5. CTS:在硬件流控制下用于指示设备以及发送完数据了,如果是高电平那么在本次数据发送完成后会阻塞下一次的传输,只有在低电平的时候才允许下一次传输。
6.CK:同步时钟端口,在同步通信模式下使用,用于输出同步时钟信号。
UART框图配置步骤
• 选择需要使用的USART/UART(根据地址映射表得到地址)
• 根据需要的波特率设置BRR寄存器
• 根据需求配置控制寄存器中的停止位和校验位
• 根据需求配置同步时钟使能位
• 使能USART的发送和接收位
• 根据需求使能发送和接收的中断位
• 使能RCC中的选中的USART/UART的时钟
• 使館USART/UART
•写USART_DR寄存器发送数据,读USART_DR寄存器接收数据
七.如何配置串口发送
1.配置时钟 GPIO的时钟 串口的时钟 引脚服用的时钟
2.配置GPIO结构体
3.配置串口结构体
4.串口发送(在main函数中写)
USART_FLAG_TXE 数据寄存器空标志位(发送完成空的)
八.定时器
stm3fxx系列有八个定时器,两个高级定时器+四个不同定时器+两个基本定时器
定时器实现灯的闪烁main中代码
void TIM2_IRQHandler(void)
{
static uint16_t temp; //ĬÈϳõʼ»¯Îª0
if( TIM_GetITStatus( TIM2, TIM_IT_Update)!=RESET)
{
if(temp++%2==1)
{
GPIO_ResetBits( GPIOA, GPIO_Pin_1);
}
else
{
GPIO_SetBits( GPIOA, GPIO_Pin_1);
}
}
TIM_ClearITPendingBit( TIM2,TIM_IT_Update);