|
@@ -50,6 +50,14 @@ CanTxMsgTypeDef CAN_TxMessaage;
|
|
|
CanRxMsgTypeDef CAN_RxMessaage;
|
|
|
CanRxMsgTypeDef CAN_RxMessaage1;
|
|
|
|
|
|
+#if defined BARD_250K
|
|
|
+const uint32_t Baudrate __attribute__((at(0x08018000))) = 0xAA55AA12; //低8位表示波特率分频系数,Bootloader取用
|
|
|
+#elif defined BARD_125K
|
|
|
+const uint32_t Baudrate __attribute__((at(0x08018000))) = 0xAA55AA24; //低8位表示波特率分频系数,Bootloader取用
|
|
|
+#else
|
|
|
+Error();
|
|
|
+#endif
|
|
|
+
|
|
|
uint8_t CAN_RxBuf_PBU[255];
|
|
|
CAN_Buf_TypeDef CAN_RxBuf_Struct_PBU = {0,255,0,0,0,0,CAN_RxBuf_PBU,0,FALSE};
|
|
|
uint8_t CAN_RxBuf_BMS[255];
|
|
@@ -68,13 +76,7 @@ void MX_CAN_Init(void)
|
|
|
{
|
|
|
|
|
|
hcan.Instance = CAN1;
|
|
|
- #if defined BARD_250K
|
|
|
- hcan.Init.Prescaler = 18;
|
|
|
- #elif defined BARD_125K
|
|
|
- hcan.Init.Prescaler = 36;
|
|
|
- #else
|
|
|
- Error();
|
|
|
- #endif
|
|
|
+ hcan.Init.Prescaler = (Baudrate & 0x000000FF);
|
|
|
hcan.Init.Mode = CAN_MODE_NORMAL;
|
|
|
hcan.Init.SJW = CAN_SJW_1TQ;
|
|
|
hcan.Init.BS1 = CAN_BS1_6TQ;
|