根据STM32F042G/STM32F042G-Mini核心模块的硬件电路,为方便多种HAL库的实验示例,这里一次性将多种外设都用STM32cubeMX软件配置好,软件中选用的是STM32F042G4U6芯片型号,核心模块是STM32F042G6U6型号的选对应型号就可以,这辆个型号除了Flash大小不一样外其它都相同。下面开始配置:
1、打开STM32cubeMX软件,选择对应芯片型号,这里选的是STM32F042G4Ux。

2、在外设选择区,打开ADC的0、1和内部温度通道;打开I2C外设;打开IWDG看门狗;打开RTC。

3、设置RTC的功能;打开SPI1外设并开启硬件NSS;打开SWD Debug和和引脚映射(USB功能必须开映射才能用);设置TIM2的1和2通道都为PWM输出;设置TIM3的通道1为捕获输入。

4、打开串口1和串口2;开启USB 设备;开启窗口看门狗。

5、在外设选择区最上面的USB设备类型选择为VCP设备,在芯片引脚区设置PB0和PB1为输出模式,PB5为外部中断,PB8为输入模式。

6、切换到时钟配置,由于启用了USB,时钟需要跑在48MHz,软件会有提示,点击Yes会自动设置好。

如下是设置好的系统时钟树配置:

7、打开外设配置区,先打开USB配置,这里可以修改USB的厂家信息。

8、打开SPI1的参数配置,修改为8bit数据,时钟默认为2分频,这个芯片的SPI1外设支持不了这么快的速度,软件有提示,改成4分频,这样SPI1的时钟速度为48/4=12MHz。

9、分别打开串口1和串口2,将波特率都设置为115200,字长为8bit。


10、打开ADC外设,修改采样时间为13.5个时钟(个人根据稳定性经验值)。

11、打开GPIO配置,设置PB1别名为LED,设置PB8为下拉输入,别名为KEY.

12、打开NVIC中断配置,这里只开启GPIO外部中断。

13、设置TIM2的参数,48分频,自动重载周期为1000,就是说PWM输出为1MHz,可以调整为1000细分脉宽。

14、设置TIM3参数,48分频,重载周期为50000,用于通道1对应引脚的信号捕获。

15、设置工程输出参数,填入工程名、设置输出IDE工程,这里选的是MDK-ARM V5。

16、点击生成工程

工程文件生成中:

工程生成完成,可以选择打开工程,打开文件夹或关闭。

17、打开工程,设置工程输出配置,勾选输出HEX文件,确定。

18、打开工程的main.c文件,在初始化中注释掉未使用到的外设初始化(不注释生成文件会比较大,超出芯片FLASH大小可能会出错)。

STM32cubeMX软件工程配置到这里就完成了,以下压缩包为本教程的cubeMX软件工程文件和生成的Keil工程文件,工程文件玩家QQ群内有共享,QQ群号:328121322:
工程文件:https://pan.baidu.com/s/1c2gqCm
Keil软件的设置和DFU下载请看此页面:https://www.eefrog.net/?page_id=291


以上配置只针对eefrog的STM32F042G模块,适用于eefrog的HAL库常用函数示例程序,不保证适用于其它模块。