在开始之前先介绍一下本项目基础任务实现目标:
1. 使用单片机定时器实现1s翻转LED验证开发板时钟晶振是否正确
2.实现OLED屏幕显示信息
3.使用开发板实现对INA219的负载测量5V,12V电压电流并显示在 OLED前面介绍了DIY功率检测与控制系统的各个模块,下面将使用开发板及模块实现:
1.LED翻转
本次项目是基于STMCubemx软件来实现的,通过官网链接可下载https://www.st.com.cn/content/st_com/zh/stm32cubemx.html#st-get-software,安装好软件之后
查阅原理图及引脚图,PA5连接着LD2。因此只需对PA5进行GPIO配置即可,打开STM32CubeMX,找到对应型号的芯片开发板,配置好外部时钟、PA5引脚为推挽输出模式,配置完成后生成代码。
再在主函数While(1)中调用HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);HAL_Delay(1000);实现led的亮灭
2.OLED显示
本项目通过软件I2c实现对OLED的驱动,将PC0设为SCL,PC1设为SDA,设置PC0和1为推挽输出高速模式,并配置时钟频率最大为72MHZ,防止频率过快导致OLED无法正常显示。
再添加上OLED驱动函数,配置好主函数,就能实现对OLED的显示:
3.使用开发板实现对INA219的负载测量5V,12V电压电流并显示在OLED
电路连接如上图所示,INA219也是使用IIC通讯,地址通过左上角的拨动开关自由选择,分别是0x40、0x41、0x44、0x45,本次是将上侧拨动开关全部置左,使其地址为0x40,使用硬件I2c,用PB6作为SCL,PB7作为SDA驱动INA219模块,由于没买着电机,就用了前辈馈赠的小型减速直流电机,同时小负载也不怕烧坏元器件,用来测试也比较方便,效果如下:
感谢EEPW提供的机会,以及论坛各位大佬的方案和思路,你们的点子太棒了,让我受益匪浅,真心感谢大家!