
单片机接收处理串口的数据的过程就是配置好波特率、位宽、校验位等,收到数据 后可以引起中断,也可以查询标志位,然后进行相应的处理。
1) 串口时钟使能,GPIO 时钟使能。
2) 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。
3) GPIO 初始化设置:要设置模式为复用功能。
4) 串口参数初始化:设置波特率,字长,奇偶校验等参数。
5) 开启中断并且初始化 NVIC,使能中断(如果需要开启中断才需要这个步骤)。
6) 使能串口。
7) 编写中断处理函数:函数名格式为 USARTxIRQHandler(x 对应串口号)
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);这个是判断串口是否触发接受(USART_IT_RXNE)中断,如果为发送中断则为(USART_IT_TXE),若产生中断则接受产生的8位2进制数据,而那个i的设置我猜测是楼主要接受字符串而设定的初值,发送完成则晴空标志位
延时不用了吧,因为是进中断的
for(i=0;i<8;i++)
{
RxBuffer[i] = USART_ReceiveData(USART1);
}
这个你看看变量i是怎么定义的,是不是静态的局部变量,这个要注意
而且你这里的中断有个很大的问题,就是进一次中断你就让数组RxBuffer收了
8个数据,这样是不对的吧。应该进一次中断就收一个数据而已,不然你整个数组不都是一次USART_ReceiveData(USART1)的数据吗?这里你好好想想看~~
最后一句USART_ClearITPendingBit( USART1, USART_IT_RXNE);改为
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
以上就是关于STM32单片机如何处理QT上位机串口中发过来的数据全部的内容,包括:STM32单片机如何处理QT上位机串口中发过来的数据、STM32串口函数求教,这是什么函数啊,有什么作用、STM32串口通讯问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)