为什么都是0x**,位数怎么不一样(USART_RX_STA&0x8000) len=USART_RX_STA&0x3f;

2019-07-20 23:20发布

while(1)
{
if(USART_RX_STA&0x8000)
{ len=USART_RX_STA&0x3f; //得到此次接收到的数据长度
printf(" 您发送的消息为: ");
for(t=0;t<len;t++)
{ USART_SendData(USART1, USART_RX_BUF[t]); //向串口 1 发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
//等待发送结束
}
为什么位数是不一样的???  0x8000  换成 0x80   可以的吗?
如果可以  为什么要用0x8000
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
Keine丶
1楼-- · 2019-07-21 03:28
0x80是8位0x8000是16位   0x80相当于0x0080
H一程
2楼-- · 2019-07-21 08:07
Keine丶 发表于 2019-7-1 20:35
0x80是8位0x8000是16位   0x80相当于0x0080

0x3f  也是8位   数据位不是0-13吗    0x003f   那不是会丢失吗

一周热门 更多>