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作者无私奉献的公开代码,在此引用移植,仅供个人学习使用