共有四种模式,本程序使用CAN_MODE_LOOPBACK ,自发自收。 #define CAN_MODE_NORMAL (0x00000000U) /*!< Normal mode */ #define CAN_MODE_LOOPBACK ((uint32_t)CAN_BTR_LBKM) /*!< Loopback mode */ #define CAN_MODE_SILENT ((uint32_t)CAN_BTR_SILM) /*!< Silent mode */ #define CAN_MODE...
CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack; /* Baudrate = 125kbps*/ CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; CAN_InitStructure.CAN_BS1=CAN_BS1_2tq; CAN_InitStructure.CAN_BS2=CAN_BS2_3tq; CAN_InitStructure.CAN_Prescaler=48; CAN_Init(CAN1, &CAN_InitStructure); /* CAN filter init *...
// CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;...
CAN_InitStructure.CAN_RFLM = DISABLE; //接受溢出时FIFO不锁定,下一个收到的报文覆盖原有报文 CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack; //CAN硬件工作环回模式 CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; //重新同步跳跃宽度为2个时间单位 CAN_InitStructure.CAN_BS1 = CAN_BS1_8tq; //时间...
环回模式(loopback mode): 环回模式可用于自测试。在环回模式下,CAN在内部把TX输出回馈到RX输入上,而完全忽略CAN_RX引脚的实际状态。因此此模式下CAN对应的GPIO引脚可以不配置,而如果对应的GPIO引脚配置了,发送的报文可以在CAN_TX引脚上检测到。见下图19。另外,为了避免外部的影响,在环回模式下CAN内核忽略确认错误(...
利用串口打印接收数据。需要注意的是,STM32只有CAN控制器,想要实现报文的收发,需要自己连接CAN收发器。首先初始化CAN // 初始化CAN,500Kbps波特率Drv_Can_Init(CAN_SJW_1tq,CAN_BS1_9tq,CAN_BS2_8tq,4,CAN_Mode_LoopBack); 然后编写主程序 u8 gKeyValue =0;// 获取按键值u8 gSendData[8] = {...
CAN_InitTypeDefCAN_InitStructure;CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack;CAN_InitStructure.CAN_Prescaler=48;//波特率 = 36M / 48 / (1 + 2 + 3) = 125KCAN_InitStructure.CAN_BS1=CAN_BS1_2tq;CAN_InitStructure.CAN_BS2=CAN_BS2_3tq;CAN_InitStructure.CAN_SJW=CAN_SJW_2tq;CAN_InitStructure...
CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack; //CAN硬件工作环回模式 CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; //重新同步跳跃宽度为2个时间单位 CAN_InitStructure.CAN_BS1 = CAN_BS1_8tq; //时间段为8个时间单位 CAN_InitStructure.CAN_BS2 = CAN_BS2_7tq; //时间段为7个时间单位 ...
//CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;/* CAN Baudrate = 0.5MBps*/ /* Baud = ...
CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack; CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; CAN_InitStructure.CAN_BS1=CAN_BS1_8tq; CAN_InitStructure.CAN_BS2=CAN_BS2_7tq; CAN_InitStructure.CAN_Prescaler=9; CAN_Init(&CAN_InitStructure); 250k ...