简介
由于此次DIY还设计到SSD1306的屏幕显示部分, 那么本篇文章我们要完成的是通过CUBE MX生成工程,然后配置好串口输出以及I2C通讯,用于驱动SSD1306和INA219.
步骤如下
1- 系统配置使用外部时钟 8MHZ

2- 配置Debug使用 Serial wire

3- 配置串口, 建议配置成USART2, 这样的话可以直接使用STLink进行通讯。
官方的手册说明如下:

4- 重写Fput char, 和配置串口输出。首先, 需要在项目的属性设置中,勾选newlibe-nano的支持, 否则的话就算重写了fputc或者io_putc,也一样没有任何输出。

然后是具体的Fputc或者ioputc
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
return ch;
}5- 下载和测试串口输出。
while (1) {
printf("Hello world\r\n");
HAL_Delay(1000);
}在主程序的While循环中加上打印函数。 然后串口助手进行测试

正确无误, 接下来我们来点亮SSD1306
SSD1306驱动
这次资料提供的SSD1315的并且是软件i2C, 开玩笑,真男人只用硬件I2C。 之前我记得我在论坛里分享过一个SSD1306的驱动。直接拿过来用(可以直接驱动, 两个库兼容起来还是很好的)。
1- 先把他拷贝到Drivers下

2- 配置Includes

3- 修改SSD1306.H中的Hal函数引用为当前开发板的, 然后修改地址为 #define SSD1306_I2C_ADDR 0x78

4- 配置I2C, 根据原理图配置I2C1

Cube MX 配置

5- 进行连接测试
搞定! 接下来就是使用I2C来读取INA219了。
我要赚赏金
