MSR寄存器的INAK位不会自动清0

2019-07-20 03:13发布

请问原子哥和高手:用的是探索者的板子来移植程序,当CAN寄存器MCR中 位0 INRQ 在手动清0后(将CAN硬件从初始化切换到正常模式),这时,CAN的MSR寄存器中的位0 INAK也应该会自动硬件清0,来指示退出初始化进入正常模式。对吧?

但是,该位不会自动清0,怎么回事?是时钟设置不对导致CAN无法正常工作,还是????串口收发其他功能都正常。

因为后面的程序需要根据该位来做个判断,这样后面程序没办法写了。

    while (((CCI_bxCANx_REG->MSR & MSR_INAK) == ((bWaitState_p) ? (0) : (MSR_INAK))))   //CCI_bxCANx_REG->MSR,该值一直为0x00000009
    {
     XXXXXXX
     XXXXXX
    }


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 03:21
帮顶
海球王
2楼-- · 2019-07-20 07:20
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-20 13:06
海球王 发表于 2016-1-15 14:16
原子哥,
我现在自己写的程序,情况就像照片那样,程序执行到这里时,一直进入while()语句,等待,超 ...

不太清楚哦
xiaocao
4楼-- · 2019-07-20 13:45
请问这个问题最后怎么解决的那?
stm32F042
5楼-- · 2019-07-20 17:21
 精彩回答 2  元偷偷看……

一周热门 更多>