STM32串口通信实验,在例程中 无法理解 定义的USART_RX_STA

2019-07-21 05:09发布

//接收状态
//bit15, 接收完成标志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字节数目
u16 USART_RX_STA=0;       //接收状态标记 
在例程中是这样定义的!
我搞不懂 USART_RX_STA只是一个变量    ,接收中断(接收到的数据必须是0x0d 0x0a结尾),如果只接收3个字节,下一次接收到0x0d ,那么是如何将USART_RX_STA 中bit14位 置1的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
it_do_just
1楼-- · 2019-07-21 06:29
 楼主的C语言基础不怎么好啊,这段代码主要还是对位的操作,一个u16类型的变量可以做很多事,0~13bit用于保存字节“数目”,那总共可以保存最多2^14=16384个字节“数”,最后剩的两位一旦接收到0x0d用或对USART_RX_STA进行操作“USART_RX_STA|=0x4000”置位第15位,如果你不这样做,就需要定义三个变量,一个变量能做完的事你定义三个出来,岂不是浪费?
jermy_z
2楼-- · 2019-07-21 08:28
看代码,那段代码不难
Watmin
3楼-- · 2019-07-21 11:49
在中断程序中置位的
小鱼人
4楼-- · 2019-07-21 17:04



 USART_RX_STA|=0x8000;
  USART_RX_STA|=0x4000;

这两句就是了
   将USART_RX_STA 中bit14.bit15位 置1的
 


李少帅
5楼-- · 2019-07-21 21:33
 精彩回答 2  元偷偷看……
HJFHXJ
6楼-- · 2019-07-21 23:01
请问楼主是否找到USART_RX_STA这个变量在哪里赋值的。赋值函数在哪里?这个在书里真没讲到。

一周热门 更多>