mupro 发表于 2016-12-12 10:41
接收一个串,都是产生好几次消息的
规定一个接收格式,或者接收超时处理都可以
米迦勒 发表于 2016-12-12 16:32
接收一个串 不能只产生一次消息吗,如果接收一个串,产生好几次消息,处理起来会非常麻烦,需要将接收到 ...
mupro 发表于 2016-12-12 16:34
不能的,必须多次。
内存申请不要定义数组,用指针加malloc
mupro 发表于 2016-12-12 16:34
不能的,必须多次。
内存申请不要定义数组,用指针加malloc
wyq0324 发表于 2016-12-12 16:45
如果不drop的话,字符串会一直存储在Source映射的内存空间里,不用再额外分配。
wyq0324 发表于 2016-12-12 16:45
如果不drop的话,字符串会一直存储在Source映射的内存空间里,不用再额外分配。
wyq0324 发表于 2016-12-12 16:54
不管收到多少MESSAGE_MORE_DATA,只要你不清理,所有收到的数据会存储在Source的内存空间里,直接用这段内存 ...
米迦勒 发表于 2016-12-12 16:55
而且如果这样的话,有可能会造成 映射的内存空间溢出吧~~
wyq0324 发表于 2016-12-12 16:59
通过malloc分配的空间不会比source映射的空间大。
数据当然要及时处理了,定义数据格式或分隔符,检测 ...
wyq0324 发表于 2016-12-12 16:59
通过malloc分配的空间不会比source映射的空间大。
数据当然要及时处理了,定义数据格式或分隔符,检测 ...
米迦勒 发表于 2016-12-14 16:10
实施过程中遇到了一个问题,如果数据没有按照指定的数据格式接收完,source缓冲区岂不是一直都不会清除吗 ...
wyq0324 发表于 2016-12-14 16:33
所以,你要加一个结束符,比如\r,标志本次发送结束,然后你就可以清除处理过的数据了。
米迦勒 发表于 2016-12-14 16:48
数据都没有按照指定的格式接收完全,应该也收不到结束符了吧。
wyq0324 发表于 2016-12-14 17:00
建议你查一下上位机是不是就没有发送完全!
即使没有接收完全,也会在收到下一个结束符时把数据清理, ...
欢迎光临 我爱蓝牙网 - 52Bluetooth - 最具人气蓝牙技术交流网站 (https://www.52bluetooth.com/) | Powered by Discuz! X3.5 |