STM32F4串口通信

STM32F4串口通信

串口通信简介:串口通信,是指外设和计算机之间,通过数据信号线、地线等,按位进行传输数据的一种通信方式,属于串行通信方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆和使用的协议。
串口数据收发线要交叉连接,计算机的TXD要对应单片机的RXD,计算机的RXD对单片机的TXD,共GND。
通信协议:RS232的通信协议通常遵循96-N-8-1格式
USART简介
USART即通用同步异步收发器,它能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准NRZ 异步串行数据格式的要求。
UART即通用异步收发器,它是在USART基础上裁剪掉了同步通信功能,同步和异步主要看其时钟是否需要对外提供。
串口通信配置步骤
(1)使能串口时钟及GPIO端口时钟。
(2)设置GPIO引脚复用器映射
GPIO_PinAFConfig(GPIOx,GPIO_PinSourcex,GPIO_AF_USARTx); //GPIOx复用为USARTx
(3)设置GPIO端口配置,设置对应引脚、模式、速度、有无上下拉等。
(4)初始化串口参数,包含波特率,字长,停止位,校验位,模式,有无硬件流控制等。
//USART1 初始化设置
USART_InitStructure.USART_BaudRate = bound;//波特率设置
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
(5)使能串口 USART_Cmd(USART1, ENABLE); //使能串口1
(6)设置串口中断类型并使能
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启接收中断
(7)设置串口中断优先级
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器
(8)编写串口中断服务函数
void USART1_IRQHandler(void) //串口1中断服务程序
{
u8 r;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
r =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据
USART_SendData(USART1,r);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);//判断是否发送完成
}
USART_ClearFlag(USART1,USART_FLAG_TC); //清空发送标志位
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值