怎么通过UART串口接收多个字符?
1个回答
展开全部
每接收一个字符,单片机就会UART中断,在中断过程中,你把读取的那个SBUF字符,全部赋值给RxdData数组,比如你读取到的字符是0x01,那RxdData[0]-RxdData[3]均为0x01。由于你发送的是2835,当接收到2时,RxdData[0]-RxdData[3]均为2,当接收到8时RxdData[0]-RxdData[3]均为8,这也就是为什么他们都只显示四个数字的最后一位。
解决思路:
由于你发送的是四个数字,定义一个计数的全局变量count,以及缓冲数组RxdData_Buffer[],每接收一个字符,会进入中断,则RxdData_Buffer[count]=SBUF;同时count自加1;当四个字符全接收完时,count的值为4,则此时在main函数中将count清0,同时将RxdData_Buffer[]的全部值赋给RxdData[]。main函数中再通过调用RxdData[],实现数码管的显示。
好了,大致思路是这样,请~~,点赞,给分。。。。。。
解决思路:
由于你发送的是四个数字,定义一个计数的全局变量count,以及缓冲数组RxdData_Buffer[],每接收一个字符,会进入中断,则RxdData_Buffer[count]=SBUF;同时count自加1;当四个字符全接收完时,count的值为4,则此时在main函数中将count清0,同时将RxdData_Buffer[]的全部值赋给RxdData[]。main函数中再通过调用RxdData[],实现数码管的显示。
好了,大致思路是这样,请~~,点赞,给分。。。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |