研究
STM32的双can有段时间了 一直有个问题一直没搞定,我初始化设置成500K,当 can总线上为500K时程序不会自动配置成相同的波特率.当总线上为125K是就会自动配置成125K 请大神们看看要怎么弄,
以下是我的部分代码:
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "can.h"
int main(void)
{
Bsp_Init();
while(1)
{
c1Sendc2Data();
c2Sendc1Data();
if (CAN_MessagePending(CAN1,CAN_FIFO0)==0)
检测有没有报文 没有就配置成125K
{
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_16tq,CAN_BS2_1tq,8,CAN_Mode_Normal);
Delay(1);
}
IWDG_ReloadCounter();
}
}
void Bsp_Init(void)
{
Delay_Init();
Delay(3); //ÑÓʱ3Ãë µÈ´ýµçÔ´ÉϵçÎȶ¨ºó µ¥Æ¬»úÔÙÕý³£¹¤×÷¡£
LED_Init();
BEEP_Init();
KEY_Init();
SFQpw=1;
LED=1;
BEEP=1;
SFQout=1;
SFQin=1;
// USART_Configura
tion();
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_16tq,CAN_BS2_1tq,4,CAN_Mode_Normal);
这里初始化设置can波特率设为500K
// NVIC_Configuration();
// CAN_Filter_config();
// IWDG ...
IWDG_Configuration();
}
一周热门 更多>