OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2298|回复: 3

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

[复制链接]

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2019-6-4
在线时间
75 小时
发表于 2019-7-1 19:47:48 | 显示全部楼层 |阅读模式
while(1)
{
if(USART_RX_STA&0x8000)
{ len=USART_RX_STA&0x3f; //得到此次接收到的数据长度
printf("\r\n 您发送的消息为:\r\n\r\n");
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
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-7-1
在线时间
10 小时
发表于 2019-7-1 20:35:43 | 显示全部楼层
0x80是8位0x8000是16位   0x80相当于0x0080
回复 支持 反对

使用道具 举报

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2019-6-4
在线时间
75 小时
 楼主| 发表于 2019-7-1 20:54:56 | 显示全部楼层
Keine丶 发表于 2019-7-1 20:35
0x80是8位0x8000是16位   0x80相当于0x0080

0x3f  也是8位   数据位不是0-13吗    0x003f   那不是会丢失吗
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-11-21
在线时间
21 小时
发表于 2019-11-28 20:35:55 | 显示全部楼层
不可以,0x8000对应16位STA,最高位对应0x0a,若接收到0x0a则结束中断,用len得到数据长度;要是0x80位数出现错误。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 14:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表