#include "can.h" #include "led.h" #include "delay.h" #include "usart.h" #include "stm32f10x.h" void CAN_Configuration(void) { //用于接收时设置过滤器 //b设备接收的时候的设置过滤器的时候 //知道对方的标准id和拓展id就可以设置过滤。 //本例程规定 拓展id==(目标设备id左移24位 | 本设备id右移16)右移3位 //这样的话 上面的的目标设备id就是本设备的id. //所以只要知到发送设备的标准id或者拓展id都可以实现判断接收设置 //条件编译, #if CAN_RX0_INT_ENABLE NVIC_InitTypeDef NVIC_InitStructure; #endif CAN_InitTypeDef CAN_InitStructure; CAN_FilterInitTypeDef CAN_FilterInitStructure; GPIO_InitTypeD ef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能PORTA时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//使能CAN1时钟 //RX GPIO_InitStructure.GPIO_Pin = CAN1_RX_GPIO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(CAN1_RX_GPIO_TYPE, &GPIO_InitStructure); //TX ef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能PORTA时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//使能CAN1时钟 //RX GPIO_InitStructure.GPIO_Pin = CAN1_RX_GPIO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(CAN1_RX_GPIO_TYPE, &GPIO_InitStructure); //TX