MCU:STM32F4
模块:0.96单色OLED
通信方式:IIC
1.下载官方代码
2.将一下文件复制到自己的工程中
3.替换oled.h中代码
1.
替换成
#include "main.h"
2.
替换内容
#define OLED_SCL_Clr() HAL_GPIO_WritePin(SCL,SCL_PIN,GPIO_PIN_RESET)//SCL
#define OLED_SCL_Set() HAL_GPIO_WritePin(SCL,SCL_PIN,GPIO_PIN_SET)
#define OLED_SDA_Clr() HAL_GPIO_WritePin(SDA,SDA_PIN,GPIO_PIN_RESET)//DIN
#define OLED_SDA_Set() HAL_GPIO_WritePin(SDA,SDA_PIN,GPIO_PIN_SET)
4.在oled.h最添加代码
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
//对应SCL的引脚
#define SCL GPIOC
#define SCL_PIN GPIO_PIN_0
//对应SDA的引脚
#define SDA GPIOC
#define SDA_PIN GPIO_PIN_1
//使能时钟宏
#define SCL_Clock_Enable __HAL_RCC_GPIOC_CLK_ENABLE
#define SDA_Clock_Enable __HAL_RCC_GPIOC_CLK_ENABLE
5.在oled.c中修改一下代码
GPIO_InitTypeDef gpio_init = {0};
SCL_Clock_Enable();
SDA_Clock_Enable();
gpio_init.Pin = SCL_PIN;
gpio_init.Mode = GPIO_MODE_OUTPUT_PP;
gpio_init.Pull = GPIO_NOPULL;
gpio_init.Speed = GPIO_SPEED_HIGH;
HAL_GPIO_Init(SCL,&gpio_init);
gpio_init.Pin = SDA_PIN;
HAL_GPIO_Init(SDA,&gpio_init);
HAL_GPIO_WritePin(SCL,SCL_PIN,GPIO_PIN_SET);
HAL_GPIO_WritePin(SDA,SDA_PIN,GPIO_PIN_SET);
delay_ms(200);
6.代码测试
#include "main.h"
#include "oled.h"
void main(void)
{
OLED_Init();
OLED_Clear();
while(1)
{
OLED_ShowString(0,0,"ABC",8,1);//6*8 “ABC”
OLED_ShowString(0,8,"ABC",12,1);//6*12 “ABC”
OLED_ShowString(0,20,"ABC",16,1);//8*16 “ABC”
OLED_ShowString(0,36,"ABC",24,1);//12*24 “ABC”
OLED_Refresh();
}
}