完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前,我使用激光测距传感器和esp32进行can通信,esp32发送一条读指令给传感器,传感器返回16组距离数值,128个字节。can卡能接收到所有的16组数据,但是esp32只能接收到6组数据,这6组数据有时还不连续。我想这是不是接收缓冲区是不是太小了,所以导致只能接收6组数据,希望大神给分析分析。
void receTask(void *arge) { uint8_t id = 0; twai_message_t receMess; while (true) { ESP_LOGI(TAG, "Rece task"); xSemaphoreTake(rx_sem, portMAX_DELAY); // wait rx_sem ESP_LOGI(TAG, "IN RECE"); for (int i = 0; i < 16; i++) { if (twai_receive(&receMess, pdMS_TO_tiCKS(50)) == ESP_OK) { if (model_number) { id = (uint8_t)(receMess.identifier & 0xFF); // 获取此帧数据ID,ID 为0x200+id,大于16位,所以与0xFF则得到是第几个设备,设备号连续。 ESP_LOGI(TAG, "Index : %d", receMess.data[6]); Tof_m[id].ID = id; Tofm_can_Unpack_Data(id, &receMess, totalDist); } } } xSemaphoreGive(tx_sem); |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
920 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
446浏览 5评论
446浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 18:57 , Processed in 0.984446 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号