打印
[单片机芯片]

菜鸟学习功能强大CH32V307之 SPI LCD(3wire9bit) 点亮

[复制链接]
1485|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
trucyw|  楼主 | 2023-5-1 15:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#申请原创#
距上一次学习已经过去近一个月的时间,今天终于利用假期时间又和大家一起来学习学习利用CH32V307实现显示功能
要实现这个功能所需要的材料如下:
1.CH32V307V-R1
2.SPI I/F的显示屏(屏幕分辨率没有特殊要求,本测试用的是2.4'' 240*320的竖屏)
3.连接线材若干(USB TYPE-C一条,手机数据线即可,剩下的就是杜邦线了,看实际需求,本实验一共用到12根)

用到的材料是不是很少
以上都准备好了,接下来就是屏幕和demo板的连线,本实验用简单的GPIO控制即可,IO使用为 PE12--SCL/PE13--SDA/PE14--CS/PE15--RESET(大家虽然看到有RS这个信号,千万不要以为要用到这个,其实是不用的),背光的A与K分别连接电源与GND
以上硬件连接完成
解下来就是今天的重点了
1.编写初始化控制函数
2.编写数据控制函数
3.剩下的就和大家使用的大部分有显示屏的实验都差不多了
其实本实验的初始化和数据控制理论可以使用同一个函数(由于我们初始化的控制要求的速度不能太快,所以本实验室为分开独立的控制函数)

void LCD_WR_REG(u8 regval)
{
u8 i;
LCD_CS_H();
LCD_CS_L();
LCD_SCL_L();
delay_us(us);
LCD_SDA_L();
delay_us(us);
LCD_SCL_H();
delay_us(us);
for(i=0;i<8;i++)
{
LCD_SCL_L();
if(regval&0x80)
{
LCD_SDA_H();
}
else
{
LCD_SDA_L();
}
delay_us(us);
regval<<=1;
LCD_SCL_H();
delay_us(us);
}
LCD_SCL_L();
}

void LCD_WR_DATA(u8 data)
{
u8 i;
LCD_CS_L();
LCD_SCL_L();
delay_us(us);
LCD_SDA_H();
delay_us(us);
LCD_SCL_H();
delay_us(us);
for(i=0;i<8;i++)
{
LCD_SCL_L();
if(data&0x80)
{
LCD_SDA_H();
}
else
{
LCD_SDA_L();
}
delay_us(us);
data<<=1;
LCD_SCL_H();
delay_us(us);
}
LCD_SCL_L();
}
void LCD_WR_RGB(u8 data)
{
u8 i;
LCD_CS_L();
LCD_SCL_L();
LCD_SDA_H();
LCD_SCL_H();
for(i=0;i<8;i++)
{
LCD_SCL_L();
if(data&0x80)
{
LCD_SDA_H();
}
else
{
LCD_SDA_L();
}
data<<=1;
LCD_SCL_H();
}
LCD_SCL_L();
}
以上完成我们的实验就完成了一大半了

上图我们可以看出CH0为SCL(时钟信号)CH1为SDA(数据信号)CH2为CS(片选信号)CH3为RESET(复位信号)
根据这个我们就可以直接解析demo板输出是否为我们需要的数据,今天我么就直接使用自带的解析功能进行解析

这样我们的数据是不是一目了然呢

我们的延时是不是也是一目了然哦

这个就是我们送出的红色(0xF800)

这个就是我们demo板送出字符串的地址和数据
今天的实验到这里就结束了
SPILCD.zip (3.98 MB)

使用特权

评论回复
沙发
chenqianqian| | 2023-5-2 08:28 | 只看该作者
没有实际显示效果吗?

使用特权

评论回复
板凳
trucyw|  楼主 | 2023-5-3 06:58 | 只看该作者
chenqianqian 发表于 2023-5-2 08:28
没有实际显示效果吗?

有的,不能直接上传视频,压缩后上传的

使用特权

评论回复
地板
guijial511| | 2023-5-13 16:02 | 只看该作者
可以转换成GIF

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

705

帖子

2

粉丝