原创 程序中的问题回答和部分修正

2008-4-13 21:26 3201 6 6 分类: 汽车电子

最近有些学习者对程序有有些语句不是很理解,现在统一回答一下,帮助所有学习者学习。另外程序中存在几处多余的代码,可能影响大家理解。


在此谢谢我们学习板的用户,尤其是小敏同学。谢谢你们的提问,这促使我们的学习板更加完美,更加有利于大家学习!


一 一些疑问


(1)    SJA_RST = 1;//CAN总线复位管脚,复位无效


SAJ1000是低电平复位。本语句是使其一直处于工作状态。


(2)    SJA_CS = 1;//CAN总线片选无效,保证数据线上的变化不会影响SJA1000
              //CPU初始化


              CAN_init(  ); //SJA1000初始化,对 SJA1000寄存器的读写是采用外部寄存器寻址方式,所以不需要程序单独控制片选有效无效


大家的疑问是:为什么片选无效了还可以对SJA1000初始化?


答:SJA_CS = 1; 使SAJ1000无效,是担心在不需要对SAJ1000操作时,数据线上变化,影响SJA1000。


对SAJ1000的读写采用的是外部寄存器寻址方式。只要定义的地址正确,单片机会自动处理片选的,不需要程序专门处理。


 


二 程序修正


1  CAN_DEF.h文件中的下面语句没有实际用处,可以删除!
   sbit   INDOG  =   P1^0;/*看门狗的控制引脚*/  


2  在void CAN_TXD( void )函数中,在第二个do.....while后面多了下面的语句。可以删除
    {
        Judge = SR;
        LED_RED = 0;//
    }


 


欢迎大家继续提问题!

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /6 下一条