1891|5

6960

帖子

11

TA的资源

版主

楼主
 

【国民技术N32WB031_STB开发板评测】OLED驱动 [复制链接]

  1. 【新提醒】N32WB03x系列蓝牙芯片 产品简介 
  2. 【新提醒】N32WB031 API函数使用说明 
  3. 【新提醒】【国民技术N32WB031_STB开发板评测】资源的下载 
  4. 【国民技术N32WB031_STB开发板评测】创建MDK模版 
  5. 【国民技术N32WB031_STB开发板评测】GPIO之按键与LED灯 
  6. 【新提醒】【国民技术N32WB031_STB开发板评测】串口+LOG分级打印

本次介绍如何驱动OLED显示屏

1、在实现串口的基础之上,添加oled到bsp文件夹中,在工程中新建分组OLED

  2、添加oled的驱动字库、驱动文件到工程里:

 

3、修改oled.h头文件,这里主要是定义SCL、SDA的端口,根据原理图,这里选用PB8为SDA、PB9为SCL,国为这次使用的是软件I2c,为以后硬件I2C做兼容。

  4、修改OLEDIO的端口与pin,并用宏定义操作IO

//-----------------OLED端口定义---------------- 
//              GND  电源地
//              VCC  3.3v电源
//              D0   PB9(SCL)
//              D1   PB8(SDA)

#define OLED_SCL_PORT    GPIOB
#define OLED_SDA_PORT    GPIOB

#define OLED_SCL_PIN     GPIO_PIN_9
#define OLED_SDA_PIN     GPIO_PIN_8


#define OLED_SCL_Clr() OLED_SCL_PORT->PBC = OLED_SCL_PIN   //SCL  GPIO_SetBits  GPIOx->PBC = Pin;
#define OLED_SCL_Set() OLED_SCL_PORT->PBSC = OLED_SCL_PIN  //GPIO_SetBits   GPIOx->PBSC = Pin;

#define OLED_SDA_Clr() OLED_SDA_PORT->PBC = OLED_SDA_PIN//SDA
#define OLED_SDA_Set() OLED_SDA_PORT->PBSC = OLED_SDA_PIN  

5、定义IO驱动初始化,函数在oled.c中:

static void OLED_gpio_init(void)
{
	GPIO_InitType GPIO_InitStructure;

  RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);

    /* Configure the GPIO pin */
	GPIO_InitStruct(&GPIO_InitStructure);
	GPIO_InitStructure.Pin = OLED_SCL_PIN | OLED_SDA_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitPeripheral(OLED_SCL_PORT, &GPIO_InitStructure);

	
}

6、在main.c函数中添加示例代码如下:

	OLED_Init();      //初始化OLED
  OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
  OLED_Clear();
  Delay_ms(800);
  OLED_ShowString(8, 6, "Hello EEWORLD!", 16, 1);
  OLED_ShowString(22, 26, "N32WB03", 24, 1);
  OLED_ShowNum(12, 52, 2023, 4, 12, 1);
  OLED_ShowChinese(40,52,9,12,1);//12*12 年
  OLED_ShowNum(54, 52, 4, 1, 12, 1);
  OLED_ShowChinese(64,52,10,12,1);//12*12 月
  OLED_ShowNum(80, 52, 29, 2, 12, 1);
  OLED_ShowChinese(94,52,2,12,1);//12*12 日
  OLED_Refresh();

7、运行效果,显示hello介面:

【总结】移植OLED,选用IO,初始化IO,定义SCL、SDA的上下拉。

附源代码:  N32WB031_OLED.zip (252.74 KB, 下载次数: 15)
此帖出自RF/无线论坛

最新回复

very good!非常好,学习学习,加油加油!!!     详情 回复 发表于 2023-11-29 20:11
点赞 关注
 

回复
举报

7159

帖子

2

TA的资源

版主

沙发
 

准备最后做一个什么样的Demo呀?

此帖出自RF/无线论坛

点评

已经驱动了墨水屏,估计后面会用到蓝牙吧。做个温湿度,脑壳里没什么创意了。  详情 回复 发表于 2023-4-29 16:59
 
 

回复

6960

帖子

11

TA的资源

版主

板凳
 
wangerxian 发表于 2023-4-29 14:20 准备最后做一个什么样的Demo呀?

已经驱动了墨水屏,估计后面会用到蓝牙吧。做个温湿度,脑壳里没什么创意了。

此帖出自RF/无线论坛

点评

可以加上太阳能,然后做一个新能源的温湿度计~  详情 回复 发表于 2023-5-5 10:08
 
 
 

回复

7159

帖子

2

TA的资源

版主

4
 
lugl4313820 发表于 2023-4-29 16:59 已经驱动了墨水屏,估计后面会用到蓝牙吧。做个温湿度,脑壳里没什么创意了。

可以加上太阳能,然后做一个新能源的温湿度计~

此帖出自RF/无线论坛

点评

这个创意可以有,家里有个模具,有时间可以玩一下。  详情 回复 发表于 2023-5-5 11:01
 
 
 

回复

6960

帖子

11

TA的资源

版主

5
 
wangerxian 发表于 2023-5-5 10:08 可以加上太阳能,然后做一个新能源的温湿度计~

这个创意可以有,家里有个模具,有时间可以玩一下。

此帖出自RF/无线论坛
 
 
 

回复

419

帖子

0

TA的资源

纯净的硅(中级)

6
 

very good!非常好,学习学习,加油加油!!!

 

此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表