硬件平台:小熊派开发板STM32L431RCT6
软件平台:RT-Thread Studio STM32CubeMX
1.首先是使用RT-Thread Studio新建一个项目
2. 完成后打开STM32CubeMX,双击
配置使用外部晶振
配置串口
时钟配置
工程管理
点击生成代码
再回到RT-Thread Studio 中发现cubemx文件下多了许多代码,
由于我是第二次创建,发现cubemx下只有Inc和Src文件夹,直接就是配置好的,这点我也感到奇怪,第一次创建的时候如果生成很多代码,我们只把Inc和Src文件夹保留下来。其它文件夹删掉即可,因为其它代码我们都用不到,而且编译也会导致出错
并且在cubemx文件夹下添加文件SConscript,我第二次创建工程时,这个文件已经存在了,第一次创建工程时需要自己添加
文件内容如下
import os
from building import *
cwd = GetCurrentDir()
src = Glob('*.c')
# add cubemx drivers
src = Split('''
Src/stm32l4xx_hal_msp.c
Src/main.c
''')
path = [cwd]
path += [cwd + '/Inc']
group = DefineGroup('cubemx', src, depend = [''], CPPPATH = path)
Return('group')
右键工程BearPi_Demo,更新软件工程
此时工程中有两个main函数,需要把cubemx中的main函数定义为weak函数,
把cubemx中main.c的一些外设初始化代码,复制到application文件下的main函数中去初始化
添加函数初始化的时候,配置好相应的头文件包含,这里不细说
由于我是第二次创建,此时编译已经通过,如果出现头文件找不能的情况,需要自己添加头文件路径,然后就能编译通过了
如果程序编译无错,硬件连接无错,但编译下载运行后,串口没有数据输出,那可能是芯片包的问题
原来我使用的是STM32L4 0.2.3的包,程序运行后串口无输出,后来删除了,安装0.1.9的芯片包可以正常运行