完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目的:想要实现串口接收不定长数据,思路如下:一个串口接收线程,一个判断数据是否接收完成线程。 串口接收线程中:接收一个字节,令开始接收标志(rx_start=1)置1,同时将(rx_count=0),开启计时线程rt_thread_startup(timeout_thread)。 是否接收完成线程中:对rx_count++,如果rx_count到达某个值,说明串口接收完成,对数据进行处理同时将标志清零。 具体代码如下: void serial_thread_entry(void *parameter) {
} void timeout_thread_entry(void *parameter) {
} rt_err_t rx_callback(rt_device_t dev, rt_size_t size) {
} int main(void) {
} 出现的问题是:用串口助手发送第一包数据时可以正常处理,再发送一包数据(即便是1个字节),出现thread: stack overflow,定位到再第二次开启判断接收是否完成线程rt_thread_startup(timeout_thread)卡住了,各位大佬看看这个是什么造成的呢? |
|
相关推荐
6个回答
|
|
|
|
|
|
这块可以完善下。但是我第一包数据发一个字节,第二包数据也发一个字节还是会出现这样的错误,感觉跟这个是否越界关系不大
|
|
|
|
通过打印信息是定位到第二次开始线程那块不太行
|
|
|
|
|
|
|
|
|
|
|
|
用阻塞模式读串口设备,无论你想读多少个字节数据,都不需要增加其它辅助线程,只需要用 read 的返回值就够了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
1167 浏览 5 评论
1261 浏览 0 评论
IaaS+on+DPU(IoD)+下一代高性能算力底座技术白皮书
2419 浏览 0 评论
飞凌嵌入式-ELFBOARD 常用的USB接口及其不同版本介绍第1期
1107 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践
1586 浏览 0 评论
65916 浏览 21 评论
嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)
67992 浏览 22 评论
58178 浏览 32 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-24 10:15 , Processed in 0.764023 second(s), Total 79, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号