完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
之前一直都是跑裸机,最近在研究ucosii,很多地方用起来还非常不习惯。在串口数据的处理上也不是太明白,还望好心朋友指点指点,图为跑裸机时的思路,即通过判断相邻2个字节间的时间来判断这一帧数据是否已经传输完成,如2Byte数据间的间隔大于20ms,就认为本帧数据传输结束,开始对本帧数据进行解析处理。那在ucos中我需要怎么去判断一帧数据在什么时候传输结束呢?还是按当前的方法吗?求指点
uint8_t RcvBuf[256]; uint32_t writeIndex; uint32_t timeOut; void USART1_IRQHandler(void) { uint8_t temp; temp = USART1->DR; RcvBuf[writeIndex++] = temp&0xff; } void TIMER1_IRQHandler(void) { //定时1ms if(timeOut)timeOut++; } int main(void) { int... while(1) { if(timeOut>=50) { 处理"RcvBuf[]" } OtherDeal(); } } |
|
相关推荐
4个回答
|
|
|
你可以用同样的方法。
|
|
|
|
|
|
感谢原子哥!可这样一来感觉跟跑裸机没啥区别了,反而增加了代码的复杂度。。。
|
|
|
|
|
|
|
|
|
|
|
|
这里我只是放了一个任务上来 多任务的时候该怎么协调呢
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1020浏览 1评论
1849浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1359浏览 1评论
1851浏览 0评论
1177浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:13 , Processed in 0.935505 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1371