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
- 参考代码:ADC Project
STM32G03的Flash
- 参考代码:Flash Project
STM32G03的IAP
- 参考代码:IAP Project
STM32G03的PWM
- 参考代码:PWM Project
STM32G03的TIMER
参考代码:TIMER Porject
STM32G03的LPUART
- 参考代码:LPUART Project
STM32G03的UART
- 参考代码:UART Project
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接收函数

- 测试截图

- 参考代码:Shell Project
鸣谢
- 感谢Nrush作者无私奉献的公开代码,在此引用移植,仅供个人学习使用