完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
已经确定了设备每次会发送9字节数据,但是每次都只能读取到两字节数据,而且串口的配置都没问题 /* 接收数据回调函数 */ |
|
相关推荐
2个回答
|
|
参考官方示例一次读一个。读取数据线程会尝试读取一个字符数据,如果没有数据则会挂起并等待信号量,当串口设备接收到一个数据时会触发中断并调用接收回调函数,此函数会发送信号量唤醒线程,此时线程会马上读取接收到的数据。
static void serial_thread_entry(void *parameter) { char ch; while (1) { /* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */ while (rt_device_read(serial, -1, &ch, 1) != 1) { /* 阻塞等待接收信号量,等到信号量后再次读取数据 */ rt_sem_take(&rx_sem, RT_WAITING_FOREVER); } /* 读取到的数据通过串口错位输出 */ ch = ch + 1; rt_device_write(serial, 0, &ch, 1); } } |
|
|
|
uart_rx_ind()是串口接收回调函数,中断接收每次进中断都会触发一次。你可以加个计数,一共会释放9次信号量,官方给的例程应该可以的,但是不要在uart_rx_ind()中仿真打断点,这个回调函数本质上会在串口中断中执行,打断点会导致后面数据收不到。之前开发试过打断点收到的是2字节数据
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1002 浏览 0 评论
IaaS+on+DPU(IoD)+下一代高性能算力底座技术白皮书
1969 浏览 0 评论
飞凌嵌入式-ELFBOARD 常用的USB接口及其不同版本介绍第1期
1071 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践
1527 浏览 0 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 应用层更改引脚复用的方法
3751 浏览 0 评论
65072 浏览 21 评论
嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)
67722 浏览 22 评论
57732 浏览 32 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 17:31 , Processed in 0.650407 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号