江科大自化协标准库改为HAL库 例程2:OLED移植和IIC通信
- 第一步:分别配置GPIO,RCC,SYS,时钟树(省略)
配置IIC两种方法:F103自带了PB8 PB9,PB7 PB6为IIC通信口,使用现成的口去接收和发送,调用HAL库即可
第二种方法(江科大视频中的代码,将GPIO配置为模拟IIC,需要有高低电平的转换)
- 第二步:配置I2C,我的F103会自动分配IIC的SCL和SDA模块
此处我将江科大的标准库代码改动为HAL库,也可用于GPIO口的数据收发
OLED驱动需要做的改动为:
- 加入stdint.h 很多uint8_t的类型会报错
- 使用HAL的GPIO输出库 注意此处!PIN_6为大写!!!!
- IIC初始化去掉GPIO和IIC的初始化,在cubemx中已经生成了,只需要做一两个高电平信号,Start还是像往常一样,需要四个步骤,上升下降(为什么这么写请看下方IIC通信的原理,需要有起始信号结束信号)
- 最重要的改动IIC写命令,需要看你的OLED背后的电阻,靠近地址,就是IIC的从机地址。我的为0x78
使用取字模软件,写出你要显示出的字,存入OLED_FONT.h中
OLED_Init(void)中基本不用换了,本文结束
参考文章:
写的很好IIC通信原理