完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
9个回答
|
|
|
|
|
|
你好,感谢你的回答,我做的思路也是向你说的那样,每个打印任务只负责将数据copy到全局循环缓冲队列,我这里的缓冲定义大小是200,拷贝完毕后,启动串口中断发送;问题是现在这样用,还是会乱码?不知什么原因?如果有空的话麻烦帮忙看看?
|
|
|
|
可能因为读写冲突,读和写同时操作一个缓冲可能会出错,你可以试着用双缓冲,或做读写分离,或者给缓冲区加锁防止写的时候读(或读的时候写)
|
|
|
|
你入队的时候没有考虑入指针追上出指针
|
|
|
|
还有,queue_size这个变量没有多大意义,我在做循环队列缓冲时候,都是通过对比top和bottom指针是否相等来判断缓冲是否为空(舍弃最远值型缓冲)
|
|
|
|
queue_size变量用着是为了方便,其实也可以判断头尾,我程序当中,都判断了 不满才入队列,不空才出队列的
|
|
|
|
入队和出队只做自己的事情,但在做这件事件之前,我都判断是否为空,是否未满?感觉没有问题?
|
|
|
|
你试试用双缓冲,做读写分离,还有,发送别放在中断里,用定时发送,等待TI标志位
|
|
|
|
看看有没有一边加,一边发的情况,要是那样肯定有问题了
|
|
|
|
只有小组成员才能发言,加入小组>>
3277 浏览 9 评论
2950 浏览 16 评论
3454 浏览 1 评论
8983 浏览 16 评论
4044 浏览 18 评论
1093浏览 3评论
567浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
564浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2298浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 20:16 , Processed in 1.280815 second(s), Total 96, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号