OpenEdv-开源电子网

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

开辟了一个USART_RX_BUF[100],请问用完后如何快速清除。

[复制链接]

83

主题

217

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-4-8
在线时间
116 小时
发表于 2016-11-29 16:10:39 | 显示全部楼层 |阅读模式
1金钱
USART_RX_BUF【100】 这个数据用完后想清楚,准备下次接收数据用,请问如何方便的清楚呢?
难道就是  for(i=0;i<100;i++) USART_RX_BUF[i]=0;
难道就是这种笨方法么?有没有其它的方法呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1765
金钱
1765
注册时间
2015-6-11
在线时间
312 小时
发表于 2016-11-29 16:18:56 | 显示全部楼层
memset(USART_RX_BUF, 0, 100);
功能和上面差不多,不过如果在接收中将末尾收到"\n"时替换为'\0',写入接收缓存,不需要清除
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2016-11-29 16:29:18 | 显示全部楼层
本帖最后由 ianhom 于 2016-11-29 16:32 编辑

取巧点的方法,要求USART_RX_BUF长度为4的倍数,数组起始地址要按4字节对其:
unsigned int *pu32Data = (unsigned int*)USART_RX_BUF;
for(i = 0; i <25; i++) puc32Data = 0;在32位MCU平台上,理论上快4倍以上,因为省去了单字节操作

或者用DMA帮你清除
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-29 16:45:10 | 显示全部楼层
memset,万能清除内存~
回复

使用道具 举报

83

主题

217

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-4-8
在线时间
116 小时
 楼主| 发表于 2016-11-29 16:57:47 | 显示全部楼层
zc123 发表于 2016-11-29 16:18
memset(USART_RX_BUF, 0, 100);
功能和上面差不多,不过如果在接收中将末尾收到"\n"时替换为'\0',写入接 ...

学习了
回复

使用道具 举报

83

主题

217

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-4-8
在线时间
116 小时
 楼主| 发表于 2016-11-29 16:58:30 | 显示全部楼层
ianhom 发表于 2016-11-29 16:29
取巧点的方法,要求USART_RX_BUF长度为4的倍数,数组起始地址要按4字节对其:
unsigned int *pu32Data = ( ...

哦…… 学习了
回复

使用道具 举报

84

主题

766

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
金钱
2775
注册时间
2015-6-1
在线时间
394 小时
发表于 2016-11-29 19:22:58 | 显示全部楼层
局部变量,就不用清了不是?
自在随心
回复

使用道具 举报

16

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1896
金钱
1896
注册时间
2015-7-5
在线时间
483 小时
发表于 2016-11-29 20:52:51 | 显示全部楼层
清除?设一个指针,直接清除指针多好
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2016-11-29 21:24:51 | 显示全部楼层
使用循环队列方式,队头指针,队尾指针!
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 18:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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