| 14 | #include "ls1c_delay.h" |
| 15 | |
| 16 | unsigned char set_reset_mode(CAN_TypeDef* CANx) |
| 17 | { |
| 18 | unsigned char status; |
| 19 | int i; |
| 20 | |
| 21 | /*检查复位标志*/ |
| 22 | status = CANx->MOD; |
| 23 | |
| 24 | /* 关闭中断 */ |
| 25 | CANx->IER = 0x00; |
| 26 | |
| 27 | for (i = 0; i < 100; i++) |
| 28 | { |
| 29 | if((status & CAN_Mode_RM) == CAN_Mode_RM) |
| 30 | return 1; |
| 31 | |
| 32 | /* 设置复位*/ |
| 33 | CANx->MOD |= ((unsigned char)CAN_Mode_RM); |
| 34 | |
| 35 | /*延时*/ |
| 36 | delay_us(10); |
| 37 | |
| 38 | /*检查复位标志*/ |
| 39 | status = CANx->MOD; |
| 40 | } |
| 41 | printf("\r\nSetting SJA1000 into reset mode failed!\r\n"); |
| 42 | return 0; |
| 43 | } |
| 44 | |
| 45 | static unsigned char set_normal_mode(CAN_TypeDef* CANx) |
| 46 | { |
no test coverage detected