发帖
15 0 0
12
返回列表 发新帖
2024-12-2 20:30:49
老哥,显示屏板子才8个引脚,代码定义了7个,那VCC、GND接哪里?是否有一个引脚不接的?
2024-12-3 11:34:40
King6688 发表于 2024-12-2 20:30
老哥,显示屏板子才8个引脚,代码定义了7个,那VCC、GND接哪里?是否有一个引脚不接的? ...

VCC接板子VCC或者3.3
gnd接板子gnd
2024-12-3 14:16:02
putin 发表于 2024-12-3 11:34
VCC接板子VCC或者3.3
gnd接板子gnd

看你上面说的貌似板上每个引脚都要接线,代码定义的2个头文件中算上电源线得有9个引脚,而板上一共才8个引脚,板上只有SCLK跟SDA,并没有MISO
2024-12-4 13:22:59
King6688 发表于 2024-12-3 14:16
看你上面说的貌似板上每个引脚都要接线,代码定义的2个头文件中算上电源线得有9个引脚,而板上一共才8个引 ...

miso是从机发送主机接受引脚,我是单独封装spi通讯函数为了方便需要用到接受和发送的情况我可以直接用(如外部flash)。tft驱动是对spi通讯函数的再次封装只不过tft不需要向主机发送数据。你只要接你外设有的鹰角
2025-1-22 20:02:52
本帖最后由 KevinLi 于 2025-2-3 21:10 编辑

这个软件spi,【SPI_SwapByte】这个函数是按照bit 每clk依次写入/读取,
您的项目中,此方法满足ST7735的时序要求,

请问您是否知道这个间隔大概是多少?是否是按照GPIO的翻转间隔计算呢?

(我发现BL602没有参数可以计算这个参数,只知道cpu主频和XTAL频率。XTAL频率似乎只需在烧录时指定)
我在尝试驱动ws2812,需要每bit间隔/分度值 是0.2ms/200ns左右,
我使用您这个软件方法驱动 失败了(尝试加入延时但vtaskdelay最小值似乎是1ms,插入cpu的nop方法我还没试因为不清楚io翻转速度)。

------
0203更新:

我用逻辑分析仪 发现这个 波形/时间间隔是稳定的,周期是1063ns.
(8Mhz/125ns 和 1063ns差的还是挺多的)

WB2-TFT.png

/**
  * 函数:SPI交换传输一个字节,使用 SPI 模式0
  * 说明:发送一个字节并接收一个字节
  * 参数:ByteSend 要发送的字节
  * 返回值:接收到的字节
  */
uint8_t SPI_SwapByte(uint8_t ByteSend)
{
    uint8_t i, ByteReceive = 0x00; // 接收到的数据,初始值为0

    for (i = 0; i < 8; i++) {
        // 发送当前位的数据
        SPI_W_MOSI(ByteSend & (0x80 >> i));  // 获取 ByteSend 的第 i 位数据
        SPI_W_CLK(1);  // 拉高 SCK

        // 读取接收到的数据
        if (SPI_R_MISO()) {
            ByteReceive |= (0x80 >> i);  // 如果 MISO 为 1,设置接收字节的第 i 位
        }

        SPI_W_CLK(0);  // 拉低 SCK
    }

    return ByteReceive; // 返回接收到的字节
}


2025-1-23 11:37:06
KevinLi 发表于 2025-1-22 20:02
这个软件spi,【SPI_SwapByte】这个函数是按照bit 每clk依次写入/读取,
您的项目中,函数满足ST7735的时序 ...

理论上来说翻转速率就是gpio的速度,0.2ms的话你这个太慢了得加延时可以自己用死循环函数冲当延时
您需要登录后才可以回帖 立即登录
高级模式
12