OpenEdv-开源电子网

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

新人求助,串口中有一句代码len=USART_RX_STA&0x3f;为什么是0x3f呢

[复制链接]

56

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2013-4-25
在线时间
0 小时
发表于 2013-5-1 00:04:02 | 显示全部楼层 |阅读模式
串口收发中有一句代码len=USART_RX_STA&0x3f;为什么是0x3f呢??谢谢了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 00:10:49 | 显示全部楼层
回复【楼主位】fk1174:
---------------------------------
因为低6位用来存储接收了多少个字节.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

56

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2013-4-25
在线时间
0 小时
 楼主| 发表于 2013-5-1 12:18:40 | 显示全部楼层
原子大哥,我在文档里没有找到   低6位用来存储接收了多少个字节相关的定义啊,只有这个


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 14:04:29 | 显示全部楼层
先搞对对象。
你贴的代码,是mini板的。
你贴的图片,是战舰板的。
这两者不一样。
战舰板的用的u16,mini板的用的u8。
所以就有点区别。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2013-3-27
在线时间
30 小时
发表于 2013-5-2 11:29:33 | 显示全部楼层
回复【楼主位】fk1174:
---------------------------------
//接收状态 
//bit7,接收完成标志 
//bit6,接收到0x0d 
//bit5~0,接收到的有效字节数目 
u8 USART_RX_STA=0;       //接收状态标记 
第七位,我定义他是用来标记是否接收完成的标记,如果接收完成了就置1,如果没有,就是0. 
第六位,我定义它用来标识是否接收到0X0D,如果收到,就置1,否则为0. 
第5~0位,用来统计接收到的字符数,最大可以支持到64个字符.
回复 支持 反对

使用道具 举报

56

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2013-4-25
在线时间
0 小时
 楼主| 发表于 2013-5-4 13:05:50 | 显示全部楼层
回复【5楼】14884036:
---------------------------------
太谢谢你了
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2013-3-27
在线时间
30 小时
发表于 2013-5-4 19:15:10 | 显示全部楼层
回复【6楼】fk1174:
---------------------------------
客气客气,我也是刚开始学32,刚刚看到串口,相互帮助吧
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-5-5 18:43:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-7-19 09:26:34 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,USART_RX_STA这个寄存器
对于mini板子  //bit6~0, 接收到的有效字节数目   USART_RX_STA&0x3F为接收到的数据长度
而对于战舰板子  //bit13~0  接收到的有效字节数目  为什么不是USART_RX_STA&0x3FFF呢???
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 10:18:52 | 显示全部楼层
回复【9楼】20130401:
---------------------------------
说明战舰板做了改进,支持更大的数据传输.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-7-19 11:01:06 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
的确支持更大的数据传输了,可以有14位了。我想问的是判断数据长度:USART_RX_STA&0x3FFF为什么不行呢?我看库函数版本还是&0x3f的,&0x3f只有6位,但是支持的是14位数据了,假如超过了6位数据,能够判断吗???
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 11:10:41 | 显示全部楼层
回复【11楼】20130401:
---------------------------------
可以,只是库函数没改过来....汗...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-7-19 11:17:49 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
原子哥,我的程序里面写的是USART_RX_STA&0x3FFF,程序结果不对。如果是u16,判断是应该写USART_RX_STA&0x3FFF还是USART_RX_STA&0x3F呢???如果是&0x3f,只有八位,是怎么判断的呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 12:27:13 | 显示全部楼层
你看寄存器版本的代码吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-8-2
在线时间
0 小时
发表于 2013-8-15 20:59:02 | 显示全部楼层
  文档里面都找不到USART_RX_STA
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2013-9-28
在线时间
0 小时
发表于 2013-10-9 22:22:18 | 显示全部楼层
回复【15楼】GMing:
---------------------------------
我也找不到
我从不担心我努力了不优秀,只担心优秀的人都比我更努力。如果你无法忍受孤独,就不要追逐梦想。
回复 支持 反对

使用道具 举报

15

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2014-3-2
在线时间
2 小时
发表于 2014-3-19 18:50:55 | 显示全部楼层
能不能问一下 若要使用 USART_RX_STA&0x3FFF   我应该怎么修改库函数   我刚接触STM32一个多周   希望您能讲的详细点  谢谢
1369813157  衣冠民
回复 支持 反对

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-7-3 12:00:06 | 显示全部楼层
回复【15楼】GMing:
---------------------------------
那个只是个变量,并不是真正意义上的寄存器
回复 支持 反对

使用道具 举报

17

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-12-16
在线时间
6 小时
发表于 2014-9-19 11:31:40 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
原子哥,我也在纠结这个问题,那库函数版本应该怎么改呢?
改为: 
u16 t; 
u16 len;   
………… 
len=USART_RX_STA&0x3fff;
这样对吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-19 23:14:04 | 显示全部楼层
回复【19楼】我不是许文强:
---------------------------------
可以
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2014-6-8
在线时间
0 小时
发表于 2014-11-7 16:20:53 | 显示全部楼层
回复【5楼】14884036:
---------------------------------
这个只是定义内的一个注释说明,从哪里可以体现程序是按着这个逻辑进行的呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-7 19:10:13 | 显示全部楼层
回复【21楼】qian_zj:
---------------------------------
串口1中断服务函数
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-3-25
在线时间
0 小时
发表于 2015-5-27 09:30:19 | 显示全部楼层
回复【3楼】fk1174:
---------------------------------
你好,想问一下这张图片在哪里找到的,谢
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2015-9-17
在线时间
37 小时
发表于 2015-9-30 10:34:26 | 显示全部楼层
回复【5楼】14884036:
---------------------------------
你好,请问为什么要这样定义寄存器呢?也就是说哪里说明了mini板传输数据的是6位,而战舰板是14位呢。在数据手册有说明吗?
很高兴同大家交流学习STM32的专业知识!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2015-8-20
在线时间
0 小时
发表于 2015-10-28 16:57:39 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我买的mini板子,下载的mini程序里面感觉是战舰的
回复 支持 反对

使用道具 举报

3

主题

32

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1450
金钱
1450
注册时间
2016-9-22
在线时间
31 小时
发表于 2017-5-11 11:24:04 | 显示全部楼层
受教了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 10:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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