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

帅哥的小迷弟

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

暂无评论

发表评论

相关推荐

基于STM32F4系列 之 霍尔编码器减速直流电机

文章目录 前言一、关于编码器介绍二、编码器工作原理三、编码器电机配置四、代码配置五、实验工程链接前言 这篇博文为作者实验经历写下的笔记,借鉴学习了多位博主的博文,并总结了互联网资料。本篇使用的是JGB37-520减

STM32硬件CRC的使用

STM32硬件CRC的使用 STM32硬件的CRC不占用MCU的计算资源,和软件查表计算消耗的存储空间。但其结果与平常使用的CRC不一样,导致很多人还是在用软件计算CRC。 其实结果的差别,只是由于计

MDK 分散加载文件剖析(一)

1、何为分散加载? 1.1 简介 分散加载就是我们开发者能指定你的 代码 或者 数据变量 到指定的内存空间中运行。通知链接器把程序的某一部分连接在存储器的某个地址空间,我们可以通过编写一个分散加载文件来指定 ARM

Arduino接收串口发送的数据

一、我们可以通过Arduino发送数据给电脑通过串口监视器进行观察 二、可以通过调用函数Serial.available()来判断有没有数据发送过来,从而接收数据。 三、函数Serial.read()可以读取串口