第5章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id=724601559592

配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103

freeRTOS系列教程之freeRTOS入门与工程实践章节汇总: https://blog.csdn.net/qq_35181236/article/details/132842016


第5章 模块使用说明与STM32CubeMX配置

5.1 硬件模块和驱动对应关系

对于每一个模块,我们都编写了驱动程序。这些驱动程序依赖于STM32CubeMX提供的初始化代码。比如driver_oled.c里面要使用I2C1通道,I2C1的初始化代码是STM32CubeMX生成的:MX_I2C1_Init被用来初始I2C1本身,HAL_I2C_MspInit被用来初始化I2C引脚。driver_oled.c只使用I2C1的函数收发数据,它不涉及I2C1的初始化。换句话说,你要在自己的工程里使用driver_oled.c,还需要初始化相应的I2C通道、引脚。

观看模块的头文件就可以知道接口函数的用法,每个驱动文件里都有一个测试函数,参考测试函数也可以知道怎么使用这个驱动。硬件模块和驱动文件对应关系如下表所示:

模块 驱动
板载单色LED driver_led.cdriver_led.h
按键(K1) driver_key.cdriver_key.h
蜂鸣器模块(有源) driver_active_buzzer.cdriver_active_buzzer.h
蜂鸣器模块(无源) driver_passive_buzzer.cdriver_passive_buzzer.h
温湿度模块(DHT11) driver_dht11.cdriver_dht11.h
温度模块(DS18B20) driver_ds18b20.cdriver_ds18b20.h
红外避障模块(LM393) driver_ir_obstacle.cdriver_ir_obstacle.h
超声波测距模块(HC-SR04) driver_ultrasonic_sr04.cdriver_ultrasonic_sr04.h
旋转编码器模块(EC11) driver_rotary_encoder.cdriver_rotary_encoder.h
红外接收模块(1838) driver_ir_receiver.cdriver_ir_receiver.h
红外发射模块(38KHz) driver_ir_sender.cdriver_ir_sender.h
RGB全彩LED模块 driver_color_led.cdriver_color_led.h
光敏电阻模块 driver_light_sensor.cdriver_light_sensor.h
舵机(SG90)
IIC OLED屏幕(SSD1306) driver_oled.cdriver_oled.h
IIC 陀螺仪加速度计模块(MPU6050) driver_mpu6050.cdriver_mpu6050.h
SPI FLASH模块(W25Q64) driver_spiflash_w25q64.cdriver_spiflash_w25q64.h
直流电机(DRV8833) driver_motor.cdriver_motor.h
步进电机(ULN2003)

5.2 调试引脚与定时器

DshanMCU-103使用SWD调试接口,可以节省出TDI(PA15)、TDO(PB3)、TRST(PB4)三个引脚。其中PA15、PB3用于全彩LED,PB4用于直流电机。所以需要在STM32CubeMX里配置调试接口为SWD,否则全彩LED、直流电机无法使用。

DshanMCU-103中使用PA8来控制红外发射模块、无源蜂鸣器,PA8作为TIM1_CH1时用到TIMER1;全彩LED使用PA15、PB3、PA2作为绿色(G)、蓝色(B)、红色(R)的驱动线,这3个引脚被分别配置为TIM2_CHN1、TIM2_CHN2、TIM2_CHN3,用到TIMER2;直流电机的通道B使用PB4作为PWM引脚(TM3_CHN1),用到TIMER3。所以TIMER1、2、3都被使用了,只剩下TIMER4作为HAL时钟。

如下配置:

第5章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置_第1张图片

待续 。。。。


本章完

你可能感兴趣的:(RTOS,freeRTOS,stm32,stm32,单片机,嵌入式,RTOS,freeRTOS,mcu)