【CAN】STM32新能源汽车CAN通信实现过程
文章目录
- 前言
- 一、软件
- 1.PA11、PA12口配置
- 2.PB8、PB9口配置
- 二、接线图
- 三、硬件原理图
- 四、上位机
- 总结
前言
【电机控制】直流有刷电机、无刷电机汇总——持续更新
使用工具:
1.控制器——STM32F103C8T6
2.仿真器——STLINK
3.CAN模块——TAJ1050集成芯片
4.USB转CAN分析仪
5.瑞萨CAN入门书
6.上位机——CANLINtools
提示:以下是本篇文章正文内容,下面案例可供参考
STM32F103C8T6芯片两个CAN口,PB8PB9和PA11PA12在CAN初始化配置中有不同需注意
一、软件
1.PA11、PA12口配置
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);//ʹÄÜÍâÉèʱÖÓ
RCC_APB1PeriphClockCmd( RCC_APB1Periph_CAN1 , ENABLE);
/* ¸´Óù¦ÄܺÍGPIOB¶Ë¿ÚʱÖÓʹÄÜ*/
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
//GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
/* Configure CAN pin: RX */ // PB8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // ÉÏÀÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure CAN pin: TX */ // PB9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // ¸´ÓÃÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//ʹÄÜCAN1ʱÖÓ
2.PB8、PB9口配置
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//ʹÄÜÍâÉèʱÖÓ
/* ¸´Óù¦ÄܺÍGPIOB¶Ë¿ÚʱÖÓʹÄÜ*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
/* Configure CAN pin: RX */ // PB8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // ÉÏÀÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* Configure CAN pin: TX */ // PB9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // ¸´ÓÃÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//ʹÄÜCAN1ʱÖÓ
二、接线图
三、硬件原理图
四、上位机
总结
本文仅仅简单介绍了【CAN】STM32新能源汽车CAN通信实现过程,评论区欢迎讨论。