RA8875的ID读取还有点问题:
[C] 纯文本查看 复制代码 -----------------------------------------------------------------------
--- RA8875
-----------------------------------------------------------------------
SPI_WRITE_DATA = 0x00
SPI_READ_DATA = 0x40
SPI_WRITE_CMD = 0x80
SPI_READ_STATUS = 0xC0
-- 写RA8875指令寄存器
function RA8875_WriteCmd(_ucRegAddr)
SPI_WriteData(0x00, string.char(SPI_WRITE_CMD))
delayms(1);
SPI_WriteData(0x00, string.char(_ucRegAddr))
end
--
function RA8875_WriteData(_ucRegValue)
SPI_WriteData(0x00, string.char(SPI_WRITE_DATA))
delayms(1);
SPI_WriteData(0x00, string.char(_ucRegValue))
end
--
function RA8875_ReadData()
local Value
SPI_WriteData(0x00, string.char(SPI_READ_DATA))
delayms(1);
Value = SPI_ReadData(0x00, 1, 16)
return Value
end
--
function RA8875_WriteData16(_usRGB)
SPI_WriteData(0x00, string.char(SPI_READ_DATA))
delayms(1);
SPI_WriteData(0x00, string.char(_usRGB/256))
delayms(1);
SPI_WriteData(0x00, string.char(SPI_READ_DATA))
delayms(1);
SPI_WriteData(0x00, string.char(_usRGB&0x00ff))
delayms(1);
end
function RA8875_ReadStatus()
local Value
SPI_WriteData(0x00, string.char(SPI_READ_STATUS))
delayms(1);
Value = SPI_ReadData(0x00, 1, 16)
return Value
end
function RA8875_ReadReg(_ucRegAddr)
local Value
RA8875_WriteCmd(_ucRegAddr)
delayms(1);
Value = RA8875_ReadData()
return Value
end
----------------------------------------------------------------------
-- 应用测试代码
-----------------------------------------------------------------------
SPI_Init(4, 0, 1) --频率ID, 时钟相位, 时钟极性
gpio_write(1, 0) --设置输出D1 = 0
delayms(50);
gpio_write(1, 1) --设置输出D1 = 1
delayms(50);
RA8875_ReadReg(0x00)
|