STM32F103C8T6-OLED 代码移植

一、题目

OLED,(使用I2C2,SCL引脚为PB10, SDA引脚为PB11)编写驱动程序,可显示”Hello,World!”,“西电电赛”,“姓名+学号”。

二、一些知识

  • 设置页地址与列地址:0.96寸屏幕分辨率为 128 * 64,行分为 page0 - page7 共 8 个 page,每个 page 有 8 行。
  • 发送指令:0x7A 0x00 …,页地址 page0 - page7 分别为 0xB0 - 0xB7;列地址低四位为 0x0*, 高四位为 0x1*。
  • 发送数据:0x7A 0x40 …
  • 注意这里的是硬件 IIC(I2C2_SCL), 若用厂家中景园提供的代码是软件 IIC(用 GPIO_Output 模拟)。

三、CubeMX 配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、代码移植

在自己的工程下新建 HARDWARE 文件夹,在内部新建 .c / .h 文件。New Group取名为 OLED; 双击添加 oled.c、oledfont.c、oled.h文件。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用 PCtoLCD 生成字模,添加到 oledfont.h 中。注意数据格式是 unsigned char

/* USER CODE BEGIN PV */
const unsigned char p1[14] = "Hello, world!";
const unsigned char p2[11] = "23009200111";
/* USER CODE END PV */
  /* USER CODE BEGIN 2 */
	OLED_Init();
	OLED_Clear();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		OLED_Refresh_Gram();
		OLED_ShowString(0, 0, p1, 16);
		OLED_ShowChinese(0, 18, 0, 16);
		OLED_ShowChinese(18, 18, 1, 16);
		OLED_ShowChinese(36, 18, 1, 16);
		OLED_ShowChinese(54, 18, 2, 16);
		OLED_ShowChinese(72, 18, 3, 16);
		OLED_ShowChinese(90, 18, 4, 16);
		OLED_ShowChinese(108, 18, 5, 16);
		OLED_ShowString(0, 36, p2, 16);
		
    /* USER CODE END WHILE */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值