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

2019-10-16 07:00发布

USART_RX_BUF【100】 这个数据用完后想清楚,准备下次接收数据用,请问如何方便的清楚呢?
难道就是  for(i=0;i<100;i++) USART_RX_BUF[i]=0;
难道就是这种笨方法么?有没有其它的方法呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zc123
1楼-- · 2019-10-16 10:02
memset(USART_RX_BUF, 0, 100);
功能和上面差不多,不过如果在接收中将末尾收到" "时替换为'',写入接收缓存,不需要清除
ianhom
2楼-- · 2019-10-16 10:23
本帖最后由 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帮你清除
小陀螺爱炒蛋
3楼-- · 2019-10-16 12:22
 精彩回答 2  元偷偷看……
vention
4楼-- · 2019-10-16 17:48
zc123 发表于 2016-11-29 16:18
memset(USART_RX_BUF, 0, 100);
功能和上面差不多,不过如果在接收中将末尾收到" "时替换为'',写入接 ...

学习了
vention
5楼-- · 2019-10-16 20:40
ianhom 发表于 2016-11-29 16:29
取巧点的方法,要求USART_RX_BUF长度为4的倍数,数组起始地址要按4字节对其:
unsigned int *pu32Data = ( ...

哦…… 学习了
yuzeyuan1
6楼-- · 2019-10-17 02:22
局部变量,就不用清了不是?

一周热门 更多>