STM32G0学习笔记

STM32G0学习笔记


偶然机会得到一个STM32G0的开发板,现做一些笔记,仅个人保存所有

STM32G03系列介绍:

STM32G0的定位

  • STM32G0系列定位为F0的升级版
  • 相对于F0的优势
    • 成本更低(相同配置下)
    • 可靠性更好:结温125摄氏度
    • 功耗更低“M0+内核
    • 外设更丰富
      • ADC 0.4us
      • Timer 2*Fcpu
      • HSI精度更高
      • USB-C PD
      • 更好的Flash.Ram比例
  • G0系列分类
    • Value Line
    • Access Line
  • 更低的功耗:
    • STOP1模式:4.1uA
    • STOP0:100uA
    • STANDBY:130nA

STM32G03的ADC

STM32G03的Flash

STM32G03的IAP

STM32G03的PWM

STM32G03的TIMER


参考代码:TIMER Porject

STM32G03的LPUART

STM32G03的UART

STM32G03的STOP模式&唤醒时间

模式介绍

  • STOP模式介绍:

STM32G0的低功耗模式分为很多种,此次实验主要测试STOP模式。STM32G0系类的stop模式有两个stop0、stop1。stop模式是STM32下极低功耗模式的一种,优势是SRAM与寄存器的内容会保持,内核关闭、PLL、HSI16、HSE被关闭。LSE&LSI保持运行。RTC能继续运行,可以选择。

一些外设(UART、IIC、LPUART)能在stop模式下使用HSI16,获取唤醒事件。主电压调节器在stop0模式下打开,stop1模式下关闭。

  • 如何进入stop模式
  • 如何退出stop模式
    -
  • stop模式运行的外设

测试实验

  • stop模式下的唤醒时间与功耗

实验思路&代码

  • Stop模式下的功耗:
    • 开启MCU的时钟、LED、EXTI等外设,降芯片置于低功耗模式,测试stop模式下的功耗
    • 按键退出低功耗模式,翻转IO,测试退出低功耗模式的时间

实验结果

  • stop模式下功耗:3.5ua

  • stop唤醒时间:8.5us左右


  • 参考代码:STOP Project

STM32G0移植nr_micro_shell

nr_micro_shell介绍

  • nr_micro_shell是一款小资源的与单片机交互的操作指令表,源于RT_Thread组件中的Finsh。
  • nr_micro_shell具有很多的优势
    • 占用资源小:Flash增加3832字节、RAM占用1104字节
    • 交互体验好
    • 扩展性好
      • 最多支持3条历史命令
      • 支持Tab补全
      • 命令行最大长度100
      • 最多10哥命令参数
      • 命令行现成堆栈512字节

nr_micro_shell源码地址

nr_micro_shell的移植

本历程基于STM32G031移植

  • 下载nr_micro_shell源码
  • cubemx新建一个STM32G0工程,初始化UART功能并且使能UART中断

  • 复制nr_micro_shell源文件到ST库文件内,并且添加到Keil工程内

  • 主函数内添加UART_IT接收函数

  • 测试截图

鸣谢

  • 感谢Nrush作者无私奉献的公开代码,在此引用移植,仅供个人学习使用