标题: STC8H8K64U硬件SPI如何驱动ST7789液晶屏 [打印本页]

作者: 高低都不调    时间: 2024-11-14 16:24
标题: STC8H8K64U硬件SPI如何驱动ST7789液晶屏
下面代码是中景园给的程序,正常通过软件模拟spi正常显示。现在改了很多代码屏幕无法点亮求指教




硬件spi驱动st7789.zip

189 KB, 下载次数: 0


作者: rsx9583    时间: 2024-11-15 00:02
中景园的代码直接用一般没问题。我猜测,你是忘记把STC的IO口初始化了。STC的IO不初始化都是高阻状态,不能直接使用。
作者: jintaiyang    时间: 2024-11-15 07:41
我下载看了一下,认为因该是没有STC8HXXX.H文件造成的。楼主把头文件加里就行了。
作者: 高低都不调    时间: 2024-11-15 09:14
rsx9583 发表于 2024-11-15 00:02
中景园的代码直接用一般没问题。我猜测,你是忘记把STC的IO口初始化了。STC的IO不初始化都是高阻状态,不能 ...

中景园用的是软件spi驱动,我已经正常点亮。想改为硬件spi驱动
作者: 高低都不调    时间: 2024-11-15 09:15
jintaiyang 发表于 2024-11-15 07:41
我下载看了一下,认为因该是没有STC8HXXX.H文件造成的。楼主把头文件加里就行了。

头文件在我c盘
作者: lkc8210    时间: 2024-11-15 10:03
30块包邮的逻辑分析仪,你值得拥有
作者: jjy1039    时间: 2024-11-15 10:56
先检查一下miso和mosi是否正确,如果都正确,试试spi初始化为 SPCTL = 0x50;
作者: 达达别    时间: 2025-4-1 23:12
楼主我最近也在研究硬件SPI驱动,这样刷新比较快 哦,大概快个20-30倍左右。。。但还是没有点亮,硬件准备画个板重新测试一下,软件如下希望给你有帮助,,,
// 宏定义
#define SPI_MODE_2 (0x08 | 0x04) // CPOL=1, CPHA=0
#define SPI_SPEED_DIV16 (0x02)   // SPR=10, 时钟分频为16
#define SPI_ENABLE (0x40)        // SPEN=1
#define SPI_MASTER_MODE (0x10)   // MSRT=1

void init_SPI() // 初始化硬SPI
{
    CS = 0; // 打开片选信号,使能OLED屏
    P_SW1 |= 0x04; // P2.2-P2.5

    SPSTAT = 0xC0; // 清空标志位
    SPCTL = (SPCTL & ~0x80) | SPI_ENABLE; // 使能SPI
    SPCTL = (SPCTL & ~0x10) | SPI_MASTER_MODE; // 设置为主机模式
    SPCTL = (SPCTL & ~0x18) | SPI_MODE_2; // 设置时钟极性和相位
    SPCTL = (SPCTL & ~0x03) | SPI_SPEED_DIV16; // 设置时钟分频
}

void OLED_WriteByte(unsigned char dat, unsigned char cmd)
{
    if (cmd != 0 && cmd != 1)
    {
        // 参数错误处理
        return;
    }
    DC = cmd; // 写命令或写数据
    SPI_WriteByte(dat); // 硬SPI写数据
}

void SPI_WriteByte(unsigned char dat)
{
    SPSTAT = 0xC0; // 清空标志位
    SPDAT = dat; // 写入数据
    unsigned int timeout = 1000; // 设置超时计数
    while (!(SPSTAT & 0x80) && timeout--) // 等待传输完成,同时检查超时
    {
        // 空循环
    }
    if (timeout == 0)
    {
        // 处理超时情况,例如设置错误标志或重启SPI模块
    }
}
作者: keemee    时间: 2025-4-4 04:48
lkc8210 发表于 2024-11-15 10:03
30块包邮的逻辑分析仪,你值得拥有

肯定有优惠




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1