前言

基础篇结束,接下来我们来开始进行模块驱动

如果懂把江科大的OLED移植成HAL库,那其实也没什么难

首先配置OLED的引脚

这里我配置PA16和17为推挽输出,PA0和1不要用,因为只有那两个引脚能使用MPU6050 

根据配置出来的引脚,我们去宏定义那边弄

OLED.h

#ifndef __OLED_H
#define __OLED_H
#include "ti_msp_dl_config.h"

#define OLED_SCL DL_GPIO_PIN_17
#define OLED_SDA DL_GPIO_PIN_16

void OLED_Init(void);
void OLED_Clear(void);
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char);
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String);
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length);
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);

#endif

OLED.c

#include "OLED.h"
#include "OLED_Font.h"

static void OLED_W_SCL(uint8_t x)
{
	if (x)
	{
		DL_GPIO_setPins(OLED_PORT, OLED_SCL);
	}
	else
	{
		DL_GPIO_clearPins(OLED_PORT, OLED_SCL);
	}
}

static void OLED_W_SDA(uint8_t x)
{
	if (x)
	{
		DL_GPIO_setPins(OLED_PORT, OLED_SDA);
	}
	else
	{
		DL_GPIO_clearPins(OLED_PORT, OLED_SDA);
	}
}

/*引脚初始化*/
void OLED_I2C_Init(void)
{
	OLED_W_SCL(1);
	OLED_W_SDA(1);
}

把OLED_I2C_Start前面的这样修改就OK了

然后初始化调用就OK了

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐