sja1000 中断_SJA1000中断接收为什么接收中断不能被触发,不能进入中断接收子函数?看资料,里面说会自动触发中断的。...
1.sja1000的int引腳你先不連接? ?sja1000通電后?(純粹通電不運行程序)?你測試一下int?是否為高??如果是高正常。
2.sja1000的int引腳你先不連接? ?運行程序? ? 你測試一下int?是否為低??如果是低正常,說明你的單片機設置有問題。是否允許外部中斷0了呢?
中斷寄存器為0x01時中斷引腳才會輸出低電平呢。你現在要做的事是想法讓中斷寄存器為0x01
3.還有你是自接收模式??還是什么? ?你先設置自接收模式(退出復位模式時的指令為0X0C),看看單個節點是否工作正常? ? ?-----------------建議先看看第三條。一般自接收模式通過了就沒問題了,你要先看自接收模式能夠正常工作。先面是我的程序,不建議仔細看,看看復位和發送做哪些操作就行。(自接收測試模式)
void?SJA1000_Init(void)
{
GPIO_Set(Control_PORT,RST,0);? ? ?//? ?IO口復位
//Delay_ms(10);? ? ? ? ? ? ? ? ? ? //? ? ? ?.
GPIO_Set(Control_PORT,RST,1);? ? ?//? ? ? ?.
//Delay_ms(10);? ? ? ? ? ? ? ? ? ? //? ? ? ?.
CAN_write(0x00,0x09);? ?sja1000進入復位模式? 單濾波器設置
CAN_write(0x1f,0xc8);? ? ? ? ? ? ? ?///PeliCAN?模式,時鐘頻率2分頻...
CAN_write(0x10,0x01);? ? ? ? ? ? ? ?//驗收代碼寄存器
CAN_write(0x11,0x02);? ? ? ? ? ? ? ?//驗收代碼寄存器
CAN_write(0x12,0x03);? ? ? ? ? ? ? ?//驗收代碼寄存器
CAN_write(0x13,0x08);? ? ? ? ? ? ? ?//驗收代碼寄存器3
CAN_write(0x14,0x00);? ? ? ? ? ? ? ?///驗收屏蔽寄存器0
CAN_write(0x15,0x00);? ? ? ? ? ? ? ?///驗收屏蔽寄存器
CAN_write(0x16,0x00);? ? ? ? ? ? ? ?///驗收屏蔽寄存器
CAN_write(0x17,0x00);? ? ? ? ? ? ? ?///驗收屏蔽寄存器
CAN_write(0x08,0x1a);? ? ? ? ? ? ? ?//設置輸出管腳
CAN_write(0x06,0x49);? ? ? ? ? ? ? ?//總線定時器0波特率預設值
CAN_write(0x00,0x0C);? ? ? ? ? ? ? ?//退出復位模式
}
總結
以上是生活随笔為你收集整理的sja1000 中断_SJA1000中断接收为什么接收中断不能被触发,不能进入中断接收子函数?看资料,里面说会自动触发中断的。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机教师格言座右铭,教师格言座右铭10
- 下一篇: 1602液晶显示实验