本次EEPW论坛和Digikey联合举办的Let's do活动的主题是功率检测和控制系统DIY。活动提供以下的硬件
- NUCLEO-F411RE开发板,用作控制系统的主控
- INA219电流检测模块-SEN0291用于进行电流检测
- SSD1305 OLED显示屏用于显示系统信息- 12V电机作为负载,通过MCU控制电机工作
- 220V转12V的的开关电源为系统供电。
在观看教学视频后,额外购买一个继电器模块、一个带显示器的调压模块,电源线,价格还可以接受。
以上就是为后续实现准备的硬件,用这些硬件来完成不同的任务。
1、基础任务一使用定时器实现1s翻转LED来验证开发板晶振是否正确
开发板是ST的NUCLEO-F411RE,提供STM32Cube IDE作为开发环境。在CubeIDE中创建STM32工程。
在`Board Select`选项卡中输入开发板型号来创建工程。
指定工程的存放位置和工程名称。
进入工程后,会自动打开xxx.ioc文件,用于配置开发板外设和生成代码,在配置界面的“Clock Configration”选项卡中配置时钟源为外部晶振,设定时钟主频为100MHz。
在“Pinout & Configuration”选项卡设置TIM1的参数,由于TIM1选用的Internel Clock为100MHz,时钟的分频系数设置为4000,定时器的计数值设置为25000,实现每1秒中触发一次TIM1的溢出中断。
在TIM1的NVIC Setting中设置使能定时器的溢出中断。
保存IOC文件,生成相应的驱动代码。
在main.c中的TIM1初始化函数中,添加TIM1的中断启动指令。
添加TIM1的溢出中断回调函数,触发中断时翻转连接LED的PA5引脚状态。
这样就可以实现1s翻转LED。使用示波器连接PA5引脚可以查看IO的翻转情况。
根据采样结果,可以确定板载的晶振频率是正确的。