STC8单片机OLED通过SPI硬件中断方式驱动(下)

到这里基本就写完了,我们来看看修改例程中的代码,先看看中景园给的

void OLED_WR_Byte(uint8_t dat, uint8_t cmd)
{
	register uint8_t i = 0;
	OLED_DC = cmd;
	
		for(;i<8;i++)
		{
			OLED_SCL_Clr();
			if(dat&0x80)
			{
			 OLED_SDA_Set();
			}
			else
			{
			 OLED_SDA_Clr();
			}
		  OLED_SCL_Set();
			dat<<=1;
		}
	
	OLED_CS_Set();
	OLED_DC_Set();
}

改为硬件驱动

#ifdef hardware
void OLED_WR_Data(uint8_t dat)
{
	SPI_Busy = 0;
	OLED_DC_Set(); //拉高DC管脚,写数据
	OLED_Writ_Bus(dat);
}

void OLED_WR_Cmd(uint8_t cmd)
{
	SPI_Busy = 0;
	OLED_DC_Clr(); //拉低DC管脚,写命令
	OLED_Writ_Bus(cmd);
}
#endif

这里其实就是区别了命令和数据管脚,写了两个函数,然后加了一个ifdef 到这里就基本完善了,例程给的优化有点差,然后再后面会出一期优化的

版权声明:本文为CSDN博主「帅哥的小迷弟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_47702826/article/details/122284978

生成海报
点赞 0

帅哥的小迷弟

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

常兴串口调试助手

1,支持常用的300-9600波特率,能设置端口参数; 2,能以ASCII码或十六进制收发数据,真正支持中文字符的收发; 3,接收到的16进制数据选中后能以10进制和2进制显示。方便查看数

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配