STM32CubeIDE&HAL库 学习笔记

一、基础教程

二、进阶教程

三、IDE优化

  • 代码自动补全设置
  • 代码主题修改:安装好插件后,在Window->preferences->DevStyle->Color Theme中可以修改代码主题;

四、学习笔记

基本步骤:选择芯片型号,设置RCC时钟,配置时钟树,设置SYS中的Debug模式,配置GPIO

  • 目录”Drivers/STM32Fxx_HAL_Driver“中有外设驱动的相关代码,且".c"文件的开头对外设的函数有介绍,看完之后能对驱动文件有大致的了解;
  • stm32CubeIDE 在工程中添加.c 和.h文件
  • 调试教程
  • STM32 CubeIDE无法进行调试的问题
  • 批量修改变量名:点击变量->右键->Refactor->Rename,修改好以后点击回车即可;
  • STM32CubeIDE查看内存使用情况
  • HAL库概述:链接1链接2。具体的使用方法可查看进阶教程中对应芯片系列的资料或者查看正点原子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_MspInitstm32f1xx_hal_msp.c文件中有定义。
  • 串口通讯有关:
  • 时钟树设置:时钟树在设置前要将HSE使能为外部时钟,否则在设置HCLK时钟时不能设置为MAX值。在这里插入图片描述
  • 调试时,如果Debug选项配置为NoDebug来进行调试,调试程序会导致Flash锁死,提示Failed to start GDB serverFailed to start GDB,在进行调试时,一定要先设置Debug的模式;
    在这里插入图片描述
  • Flash锁死的解决方法;
  • FreeRTOS:
  • 代码规范:
    • define中的变量全部用大写,例,NUM_START(下划线可选用,但是要保持一致)
    • 函数和全局变量用"帕斯卡命名法",例:Device_Init();MotorNum (方法采用下划线分隔,变量不用分隔)
    • 局部变量用“驼峰命名法”,例:dataNum
  • 调试时的条件断点
  • 调试时断点添加过多会有错误;
  • 定时器与PWM:文档1文档2,开启PWM时,HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_ALL) 使用TIM_CHANNEL_ALL不会产生pwm波 ;
  • 修改MCU型号:方法1方法2
  • 使用Gitee管理代码
  • HAL库方式的微秒延时
  • SPI:文档1文档2文档3
  • 内部温度传感器的使用:文档1文档2
  • FSMC使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值