转,本文转自http://blog.sina.com.cn/s/blog_4a3946360100wauz.html,仅供参考和学习,版权归原作者学习,好资料故留存借鉴,如原作者不愿本文被转载,请联系我删除!
通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。
它支持同步单向通信和半双工单线通信。它也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。用于多缓冲器配置的DMA方式,可以实现高速数据通信。
主要特性:
全双工的,异步通信
NR 标准格式
分数波特率发生器系统
-发送和接收共用的可编程波特率,最高到4.5Mbits/s
可编程数据字长度(8位或9位)
可配置的停止位 -支持1或2个停止位
LIN主发送同步断开符的能力以及LIN从检测断开符的能力
– 当USART硬件配置成LIN时,生成13位断开符;检测10/11位断开符
发送方为同步传输提供时钟
IRDA SIR 编码器解码器
– 在正常模式下支持3/16位的持续时间
智能卡模拟功能
– 智能卡接口支持ISO7816 -3标准里定义的异步协议智能卡
– 智能卡用到的0.5和1.5个停止位
单线半双工通信
使用DMA的可配置的多缓冲器通信
– 在保留的SRAM里利用集中式DMA缓冲接收/发送字节
单独的发送器和接收器使能位
检测标志
– 接收缓冲器满
– 发送缓冲器空
– 传输结束标志
校验控制
– 发送校验位
– 对接收数据进行校验
四个错误检测标志
– 溢出错误
– 噪音错误
– 帧错误
– 校验错误
10个带标志的中断源
– CTS改变
– LIN断开符检测
– 发送数据寄存器
– 发送完成
– 接收数据寄存器
– 检测到总线为空
– 溢出错误
– 帧错误
– 噪音错误
– 校验错误
多处理器通信 – – 如果地址不匹配,则进入静默模式
从静默模式中唤醒(通过空闲总线检测或地址标志检测)
两种唤醒接收器的方式
– 地址位(MSB)
– 空闲总线
按以下步骤来配置USART
1.配置RXD TXD管脚参数
2.配置GPIOx时钟以及USART时钟
3.由于要使用串口接收中断,需要配置NVIC
4.串口相关参数配置,使能串口,使能中断
以下是我写的一个简单的串口收发程序
USART_InitTypeDef USART1_InitStruct={9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,\
void USART1_GPIO_Init()
{//这样做的好处是不用初始化结构体内的每个值
}
void USART1_Init()
{
}
void UART1_Send_byte(USART_TypeDef* USARTx,u8 Data)
{
}
void NVIC_Configuration()
{
}
int main(void)
{
}
void USART1_IRQHandler(void)
{
}
[\c]
0 条评论
沙发空缺中,还不快抢~