【LIN】STM32新能源汽車LIN通信實現過程
文章目錄
- 前言
- 一、軟件
- 二、接線圖
- 三、硬件原理圖
- 四、上位機
- 五、PICO示波器串行解碼
- 1.軟件中的LIN波特率設置-19200
- 2.PIC設置
- 3.PIC串行解碼
- 六.引用
- 總結
前言
【電機控制】直流有刷電機、無刷電機匯總——持續更新
使用工具:
1.控制器——STM32F103C8T6
2.仿真器——STLINK
3.LIN模塊——TAJ1021集成芯片
4.USB轉CAN/LIN分析儀
5.瑞薩LIN入門書
6.上位機——CANLINtools
7.PICO7
提示:以下是本篇文章正文內容,下面案例可供參考
STM32F103C8T6芯片通過串口打印PA2 PA3,初始化LIN通信
一、軟件
//3?ê??ˉIO ′??ú2
//pclk1:PCLK1ê±?ó?μ?ê(Mhz)
//bound:2¨ì??ê
void usart2_lin_init(u32 bound)
{ GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);//ê1?üGPIOA,Dê±?óRCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//ê1?üUSART2ê±?óGPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //PD7???ú????GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //í?íìê?3?GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //?′ó?í?íìGPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //????ê?è?GPIO_Init(GPIOA, &GPIO_InitStructure); RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,ENABLE);//?′??′??ú2RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,DISABLE);//í£?1?′??USART_InitStructure.USART_BaudRate = bound;//2¨ì??êéè??USART_InitStructure.USART_WordLength = USART_WordLength_8b;//8??êy?Y3¤?èUSART_InitStructure.USART_StopBits = USART_StopBits_1;//ò???í£?1??USART_InitStructure.USART_Parity = USART_Parity_No;///????D£?é??USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//?Tó2?têy?Yá÷????USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//ê?·¢?£ê?USART_Init(USART2, &USART_InitStructure); ; //3?ê??ˉ′??úNVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; //ê1?ü′??ú2?D??NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //?è??ó??è??2??NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //′óó??è??2??NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ê1?üía2??D??í¨μàNVIC_Init(&NVIC_InitStructure); //?ù?YNVIC_InitStruct?D???¨μ?2?êy3?ê??ˉíaéèNVIC??′??÷USART_ITConfig(USART2,USART_IT_RXNE, ENABLE);//?a???D??// USART_ITConfig(USART2,USART_IT_LBD, ENABLE);//?a???D??USART_LINBreakDetectLengthConfig(USART2,USART_LINBreakDetectLength_10b);USART_LINCmd(USART2, ENABLE);USART_Cmd(USART2, ENABLE); //ê1?ü′??ú }
二、接線圖
三、硬件原理圖
四、上位機
五、PICO示波器串行解碼
1.軟件中的LIN波特率設置-19200
usart2_lin_init(19200);
2.PIC設置
3.PIC串行解碼
六.引用
總結
本文僅僅簡單介紹了【LIN】STM32新能源汽車LIN通信實現過程,評論區歡迎討論。