RA8875_InitHard()写个RA8875硬件初始化代码
时间: 2023-12-14 09:39:32 浏览: 51
好的,以下是一个RA8875硬件初始化的代码示例:
```C
void RA8875_InitHard()
{
// 初始化SPI总线
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV2);
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
// 初始化RA8875
digitalWrite(RA8875_CS, HIGH); // 禁用RA8875
digitalWrite(RA8875_RST, LOW); // 复位RA8875
delay(100);
digitalWrite(RA8875_RST, HIGH); // 停止复位
// 等待RA8875启动
delay(100);
// 发送初始化命令
RA8875_WriteCommand(RA8875_PWRR);
RA8875_WriteData(0x00); // normal mode
delay(1);
RA8875_WriteCommand(RA8875_PLLC1);
RA8875_WriteData(0x0D); // crystal oscillator * 2
delay(1);
RA8875_WriteCommand(RA8875_PLLC2);
RA8875_WriteData(0x02); // crystal oscillator / 10
delay(1);
RA8875_WriteCommand(RA8875_SYSR);
RA8875_WriteData(0x20); // 8-bit bus, normal mode
delay(1);
RA8875_WriteCommand(RA8875_PCSR);
RA8875_WriteData(0x80); // PWM2 disabled, PWM1 enabled
delay(1);
RA8875_WriteCommand(RA8875_MWCR0);
RA8875_WriteData(0x0A); // 16-bit data bus, text mode
delay(1);
RA8875_WriteCommand(RA8875_MWCR1);
RA8875_WriteData(0x00); // no scrolling
delay(1);
RA8875_WriteCommand(RA8875_DPCR);
RA8875_WriteData(0x00); // no display off/on sequence
delay(1);
RA8875_WriteCommand(RA8875_FNCR0);
RA8875_WriteData(0x02); // external font ROM, ASCII 8x16
delay(1);
RA8875_WriteCommand(RA8875_FNCR1);
RA8875_WriteData(0x01); // external font ROM, ASCII 8x8
delay(1);
RA8875_WriteCommand(RA8875_CTPR);
RA8875_WriteData(0x00); // disable touch panel
delay(1);
// 启用RA8875
digitalWrite(RA8875_CS, LOW);
}
```
此代码假设已经定义了RA8875_CS和RA8875_RST引脚,并且SPI总线已经初始化。在初始化过程中,它发送一系列命令来配置RA8875,例如设置PLL,选择总线宽度和字体,禁用触摸面板等。最后,它启用RA8875。这是一个简单的示例,可能需要根据具体的应用程序进行调整。