STM32CubeIDE&HAL库 学习笔记
一、基础教程
-
; ; ;
二、进阶教程
-
/(这个视频教程声音有点问题); ; ; ; ;
三、IDE优化
-
; 代码主题修改:安装好插件后,在Window->preferences->DevStyle->Color Theme中可以修改代码主题;
四、学习笔记
基本步骤:选择芯片型号,设置RCC时钟,配置时钟树,设置SYS中的Debug模式,配置GPIO
-
目录”Drivers/STM32Fxx_HAL_Driver“中有外设驱动的相关代码,且".c"文件的开头对外设的函数有介绍,看完之后能对驱动文件有大致的了解; ; ; ; 批量修改变量名:点击变量->右键->Refactor->Rename,修改好以后点击回车即可; ; HAL库概述:、。具体的使用方法可查看进阶教程中对应芯片系列的资料或者查看正点原子F1、F4等系列的HAL库开发指南(); MSP: MCU Specific Package 单片机的具体方案 MSP是指和MCU相关的初始化,引用一下正点原子的解释: 要初始化一个串口,首先要设置和 MCU 无关的东西,例如波特率,奇偶校验,停止位等,这些参数设置和 MCU 没有任何关系,可以使用 STM32F1,也可以是 STM32F2/F3/F4/F7上的串口。而一个串口设备它需要一个 MCU 来承载,例如用 STM32F4 来做承载,PA9 做为发送,PA10 做为接收,MSP 就是要初始化 STM32F4 的 PA9,PA10,配置这两个引脚。所以 HAL驱动方式的初始化流程就是:HAL_USART_Init()—>HAL_USART_MspInit() ,先初始化与 MCU无关的串口协议,再初始化与 MCU 相关的串口引脚,HAL_UART_MspInit在stm32f1xx_hal_msp.c文件中有定义。 串口通讯有关: ; ; ;HAL_UART_Transmit_DMA(&huart1, USER_SED_BUF, BufNum); 此行代码用于开启发送数据,在普通模式下只发送一次(发送完成后会失能DMA发送),在循环模式下会一直发送,在此函数内部可以查看DMA有关中断的回调函数;hdma_usart1_tx.State == HAL_DMA_STATE_READY,此行代码用于判断串口1的DMA发送是否完成,具体定义可在HAL_DMA_StateTypeDef中查看; 时钟树设置:时钟树在设置前要将HSE使能为外部时钟,否则在设置HCLK时钟时不能设置为MAX值。 调试时,如果Debug选项配置为NoDebug来进行调试,调试程序会导致Flash锁死,提示Failed to start GDB serverFailed to start GDB,在进行调试时,一定要先设置Debug的模式; ; FreeRTOS: ; 代码规范: define中的变量全部用大写,例,NUM_START(下划线可选用,但是要保持一致) 函数和全局变量用"帕斯卡命名法",例:Device_Init();、MotorNum (方法采用下划线分隔,变量不用分隔) 局部变量用“驼峰命名法”,例:dataNum; ; 调试时断点添加过多会有错误; 定时器与PWM:、,开启PWM时,HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_ALL) 使用TIM_CHANNEL_ALL不会产生pwm波 ; 修改MCU型号:、; ; ; SPI:、、; 内部温度传感器的使用:、; ;
