樊春春 4 місяців тому
батько
коміт
5674b236b3
3 змінених файлів з 13 додано та 18 видалено
  1. 0 1
      User/app/iap/iap.c
  2. 4 7
      User/app/queue/queue.h
  3. 9 10
      User/bsp/can/can.c

+ 0 - 1
User/app/iap/iap.c

@@ -7,7 +7,6 @@
 #include "global.h"
 #include <string.h>
 
-
 static u8  iap_index             = 0;
 static u16 iap_buf[IAP_BUF_SIZE] = {0};
 

+ 4 - 7
User/app/queue/queue.h

@@ -13,12 +13,9 @@ typedef struct
     u16             rear;
 } SqQueue;
 
-void InitQueue(SqQueue *Q); // 初始化队列
-
-u8 GetHead(SqQueue *Q, CanData_TypeDef *e); // 获取对头数据
-
-u8 InsertQueue(SqQueue *Q, CanData_TypeDef e); // 队列插入数据
-
-u8 IsQueueEmpty(const SqQueue *Q); // 查询队列是否为空
+void InitQueue(SqQueue *Q);                      // 初始化队列
+u8   GetHead(SqQueue *Q, CanData_TypeDef *e);    // 获取对头数据
+u8   InsertQueue(SqQueue *Q, CanData_TypeDef e); // 队列插入数据
+u8   IsQueueEmpty(const SqQueue *Q);             // 查询队列是否为空
 
 #endif

+ 9 - 10
User/bsp/can/can.c

@@ -2,7 +2,6 @@
 #include "global.h"
 #include <string.h>
 
-
 #define MASK_ID 0x18CE00EF
 
 CanRxMsg RxMessageImportant;
@@ -24,7 +23,7 @@ extern SqQueue  CanQueueImportant;
 
 u32 result;
 
-u8 CAN2_Mode_Init(u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode)
+u8 CAN1_Mode_Init(u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode)
 {
     GPIO_InitTypeDef      GPIO_InitStructure;
     CAN_InitTypeDef       CAN_InitStructure;
@@ -34,20 +33,20 @@ u8 CAN2_Mode_Init(u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode)
     u32 mask_id = MASK_ID;
 
     // 使能相关时钟
-    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // 使能PORTA时钟
+    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); // 使能PORTA时钟
     RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);  // 使能CAN1时钟
 
     // 初始化GPIO
-    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_12 | GPIO_Pin_13;
+    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_11 | GPIO_Pin_12;
     GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;      // 复用功能
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     // 推挽输出
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // 100MHz
     GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;      // 上拉
-    GPIO_Init(GPIOB, &GPIO_InitStructure);             // 初始化PA11,PA12
+    GPIO_Init(GPIOA, &GPIO_InitStructure);             // 初始化PA11,PA12
 
     // 引脚复用映射配置
-    GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_CAN2); // GPIOB11复用为CAN1
-    GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_CAN2); // GPIOB12复用为CAN1
+    GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_CAN1); // GPIOB11复用为CAN1
+    GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_CAN1); // GPIOB12复用为CAN1
 
     // CAN单元设置
     CAN_InitStructure.CAN_TTCM      = DISABLE; // 非时间触发通信模式
@@ -100,9 +99,9 @@ u8 CAN2_Mode_Init(u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode)
 void CAN2_Init(void)
 {
 #if defined(__CAN_BAUD_500K)
-    CAN2_Mode_Init(CAN_SJW_1tq, CAN_BS2_6tq, CAN_BS1_7tq, 6, CAN_Mode_Normal); // CAN1初始化环回模式,波特率500Kbps
+    CAN1_Mode_Init(CAN_SJW_1tq, CAN_BS2_6tq, CAN_BS1_7tq, 6, CAN_Mode_Normal); // CAN1初始化环回模式,波特率500Kbps
 #elif defined(__CAN_BAUD_250K)
-    CAN2_Mode_Init(CAN_SJW_1tq, CAN_BS2_6tq, CAN_BS1_7tq, 12, CAN_Mode_Normal); // CAN1初始化环回模式,波特率250Kbps
+    CAN1_Mode_Init(CAN_SJW_1tq, CAN_BS2_6tq, CAN_BS1_7tq, 12, CAN_Mode_Normal); // CAN1初始化环回模式,波特率250Kbps
 #else
     //  #error no can baud macro!;
 #endif
@@ -141,7 +140,7 @@ u8 CAN2_Send_Msg(u8 *msg, u8 len, u32 can_id)
 }
 
 // CAN1中断服务函数
-void CAN2_RX0_IRQHandler(void)
+void CAN1_RX0_IRQHandler(void)
 {
 
     CAN_Receive(CAN1, CAN_FIFO0, &RxMessageImportant); // 1.6us  ucos时间戳、示波器测量都是1.6us