mirror of
https://github.com/armink/EasyLogger.git
synced 2025-01-31 21:42:53 +08:00
1.2 KiB
1.2 KiB
NUCLEO-G070RB(基于STM32G070RBT6) FreeRTOS demo
1、简介
使用STM32CubeMX创建FreeRTOS工程,实现异步log输出的demo
2、使用方法
导入STM32CubeIDE,连接开发板下载使用。使用NUCLEO自带的STLinkV2-1的串口,配置115200 8 1 N,可观察到3种不同等级和颜色的HelloWorld。
3、文件(夹)说明
Components/EasyLogger_Port
文件夹下为移植参考适配文件。Core/Src/main.c
添加了串口发送完成回调函数和elog初始化。Core/Src/app_freertos.c
中默认线程每间隔1秒发送一次log。
4、其他说明
- 对于NUCLEO-G070RB的默认Cube工程,大致进行了如下修改:修改了系统时钟为64M;修改系统时钟源为TIM1,开启FreeRTOS,添加了log异步输出线程,添加了信号量,使能
USE_NEWLIB_REENTRANT
选项;串口数据字节改为8,添加串口发送DMA,打开串口中断。 - 对于异步输出的线程(本demo中为
elog
线程)和需要使用elog的线程,推荐stack大小大于256word,使用Cube默认的128word可能会造成栈溢出。 - 需要打开串口2的中断,而不仅仅是默认打开的DMA中断,才能在DMA传输完成后正常进入
HAL_UART_TxCpltCallback()
回调函数。