OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4551|回复: 4

ucosii 串口数据中断接收处理

[复制链接]

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-5-31
在线时间
12 小时
发表于 2018-10-26 23:58:15 | 显示全部楼层 |阅读模式
5金钱
之前一直都是跑裸机,最近在研究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();
    }
}


001.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-10-27 02:10:32 | 显示全部楼层
你可以用同样的方法。
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-5-31
在线时间
12 小时
 楼主| 发表于 2018-10-27 08:34:57 | 显示全部楼层
正点原子 发表于 2018-10-27 02:10
你可以用同样的方法。

感谢原子哥!可这样一来感觉跟跑裸机没啥区别了,反而增加了代码的复杂度。。。
回复

使用道具 举报

70

主题

6685

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12614
金钱
12614
注册时间
2012-11-26
在线时间
3701 小时
发表于 2018-10-27 08:53:45 | 显示全部楼层
ai857204817 发表于 2018-10-27 08:34
感谢原子哥!可这样一来感觉跟跑裸机没啥区别了,反而增加了代码的复杂度。。。

跑OS是为了多任务处理,以及多任务协同

你这单个串口的应用,也没必要上OS
学无止境
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-5-31
在线时间
12 小时
 楼主| 发表于 2018-10-27 12:40:01 | 显示全部楼层
jermy_z 发表于 2018-10-27 08:53
跑OS是为了多任务处理,以及多任务协同

你这单个串口的应用,也没必要上OS

这里我只是放了一个任务上来 多任务的时候该怎么协调呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 08:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表