OpenEdv-开源电子网

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

UCOSII 串口中断丢字节

[复制链接]

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2015-1-12
在线时间
65 小时
发表于 2018-1-26 10:34:58 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 losin 于 2018-1-27 14:11 编辑

/*****************中断服务函数***************************/

vu16 USART3_RX_STA=0;
vu16 USART3_TX_STA=0;
void USART3_IRQHandler(void)
{
    u8 res;        
    OSIntEnter();   
    if(USART_GetFlagStatus(USART3, USART_FLAG_RXNE) != RESET)//接收到数据
    {     
        res=USART_ReceiveData(USART3);              
        if((USART3_RX_STA&(1<<15))==0)//接收完的一批数据,还没有被处理,则不再接收其他数据
        {
            if(USART3_RX_STA<USART3_MAX_RECV_LEN)    //还可以接收数据
            {
                TIM_SetCounter(TIM7,0);                       //计数器清空
                if(USART3_RX_STA==0)                 //使能定时器7的中断
                {
                    TIM_Cmd(TIM7, ENABLE);                     //使能定时器7
                }
                USART3_RX_BUF[USART3_RX_STA++]=res;    //记录接收到的值     
            }else
            {
                USART3_RX_STA|=1<<15;                //强制标记接收完成
            }
        }
    }                                               
    OSIntExit();               
}
//中断优先级已经设置最高
    NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级0
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;        //子优先级0
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //IRQ通道使能
    NVIC_Init(&NVIC_InitStructure);    //根据指定的参数初始化VIC寄存器


//串口3 跟sim900 通信时 出现 接收丢字节现象   本该是 +CMGR: "REC UNREAD","+8613560491039","@ZF","13/05/01,16:06:53+32"
    ALIENTEK ATK-SIM900A Module   实际 是 +CMR: "REC UEAD","+8613560491039","@ZF","13/05/01,16:06:53+32"
    ALIENTEK ATK-SIM900A Module ,少几个字节数据


















                                
}  

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-1-27 00:35:36 | 显示全部楼层
中断服务函数,OSIntExit之后,还有代码?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2015-1-12
在线时间
65 小时
 楼主| 发表于 2018-1-27 14:12:12 | 显示全部楼层
没有,代码是部分代码
是原子的代码 没改变
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-1-29 01:17:34 | 显示全部楼层
你的串口发送速率降低一点试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
发表于 2018-3-9 15:56:40 | 显示全部楼层
感觉我配置的楼主的差不多 也用的ucosii,只不过库我用的是hal库,楼主用的是标准库FWlib吧
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 10:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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