查看: 4218|回复: 7

[求助] MK22芯片UART中断不能进入的问题

[复制链接]

该用户从未签到

2

主题

12

帖子

0

注册会员

Rank: 2

积分
76
最后登录
2017-1-2
发表于 2016-3-5 21:15:14 | 显示全部楼层 |阅读模式
使用飞思卡尔MK22芯片做数据采集,使用RS232做数据采集的通讯口,开始的一段时间内采集的数据正常,一段时间后数据采集不正常,重启以后数据又可以采集正常,检查发现是中断没有进入导致的,这个可能是什么原因导致的呢?求大神指导!(采集数据的现场电磁干扰比较大,有时候烧写程序的时候都烧写不进)。
附录:
UART初始化程序和中断子程序
void UART1_Init(word BaudRate) {
        Peripheral_Clock_Enable(UART1_INDEX);
        delayMS(50);
        UART1_TimeOut_Cnt = 2500000 / BaudRate;                                                                                                                // Initialize TimeOut
        SBR  = (word)(CORE_CLOCK_Hz / 16 / BaudRate);
        BRFA = 2 * CORE_CLOCK_Hz / BaudRate - 32 * SBR;
        UART1->C2  = 0;
        UART1->BDH = (byte)((SBR & 0x1F00)>>8);
        UART1->BDL = (byte)( SBR & 0x00FF);
        UART1->C4  = (byte)(BRFA & 0x001F);
        UART1->C1  = 0;
        UART1->C2  = UART_C2_RIE_MASK | UART_C2_TE_MASK | UART_C2_RE_MASK;
        NVIC_SetPriority(UART1_RX_TX_IRQn, UART1_INT_PRIORITY);                                                // Configurate NVIC
        NVIC_ClearPendingIRQ(UART1_RX_TX_IRQn);
        NVIC_EnableIRQ(UART1_RX_TX_IRQn);
}

// UART1 Interrupt Service Routine, RS232Ch1
void UART1_RX_TX_IRQHandler(void) {
        if(UART1->S1 & UART_S1_RDRF_MASK) {
                UART1_TimeOut = UART1_TimeOut_Cnt;
                UART1_RX_buf[UART1_RX_num] = UART1->D;
                UART1_RX_num++;
                FJHY_ReceiveData();      //数据接收处理程序
        }
}


我知道答案 目前已有7人回答
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2016-3-5 22:17:51 | 显示全部楼层
    你使用用的是KSDK 吗,还是寄存器? null - 副本 - 副本 - 副本.png null - 副本 - 副本 (2).png null - 副本 - 副本 (3).png null - 副本 - 副本.png null - 副本 (2) - 副本.png null - 副本 (2).png null - 副本 (3).png null - 副本 (4).png null - 副本.png null.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    2016-3-6
    发表于 2016-3-6 21:39:07 | 显示全部楼层
    :)
    你使用用的是KSDK 吗,还是寄存器?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-3-7 11:09:33 | 显示全部楼层
    楼主你好!
    有没有debug看看,中断不能进去的时候,代码是死在什么地方,还只是串口中断不能进入?
    另外, 如果工况不是很好的话,建议你开启看门狗,防止程序跑飞。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    帖子

    0

    注册会员

    Rank: 2

    积分
    76
    最后登录
    2017-1-2
     楼主| 发表于 2016-3-7 16:19:32 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2016-3-7 11:09
    楼主你好!
    有没有debug看看,中断不能进去的时候,代码是死在什么地方,还只是串口中断不能进入?
    另外,  ...

    代码没有死掉,WDOG已经加了,但是还是出现这样的情况!一批有七八十台机器只有四五台没有出现这样的问题,没办法只能定时的初始化对应的串口!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-3-7 16:40:39 | 显示全部楼层
    yyy123yyy 发表于 2016-3-7 16:19
    代码没有死掉,WDOG已经加了,但是还是出现这样的情况!一批有七八十台机器只有四五台没有出现这样的问题 ...

    你的意思是UART数据来了,但是不进中断了?
    那么你有没有开启其他的中断,是否是中断被同等级的其他中断给抢占了?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    帖子

    0

    注册会员

    Rank: 2

    积分
    76
    最后登录
    2017-1-2
     楼主| 发表于 2016-3-8 11:39:42 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2016-3-7 16:40
    你的意思是UART数据来了,但是不进中断了?
    那么你有没有开启其他的中断,是否是中断被同等级的其他中断 ...

    有开其他的UART中断和PIT中断,大概中断源有六七个,数据不能进来的UART中断给的优先级还挺高的,然后初始化SIM模块以后数据又能进来,有没有可能外部干扰导致中断标志没有完全清掉,所以导致中断进不去?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-3-8 12:47:53 | 显示全部楼层
    yyy123yyy 发表于 2016-3-8 11:39
    有开其他的UART中断和PIT中断,大概中断源有六七个,数据不能进来的UART中断给的优先级还挺高的,然后初 ...

    你这六七个,有没有和UART同等级的中断源了?
    你可以直接就把UART设为最高,然后其他的中断源等级都低于UART试试。
    一般不会出现其他中断源导致UART标志未清的情况。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 06:43 , Processed in 0.172920 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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