- #include <xc.h>
- #include <stdint.h>
- // 配置SPI和GPIO引脚
- #define CS LATCbits.LATC0
- #define RES LATCbits.LATC1
- #define DC LATCbits.LATC2
- void SPI_Init() {
- // 配置SPI模块
- SSP1STAT = 0x40; // 数据在上升沿采样
- SSP1CON1 = 0x20; // SPI主模式,时钟Fosc/4
- TRISCbits.TRISC3 = 0; // SCK
- TRISCbits.TRISC5 = 0; // MOSI
- TRISCbits.TRISC4 = 1; // MISO
- }
- void SPI_Write(uint8_t data) {
- SSP1BUF = data;
- while(!SSP1STATbits.BF); // 等待传输完成
- }
- void ST7735_Command(uint8_t cmd) {
- CS = 0;
- DC = 0; // 命令模式
- SPI_Write(cmd);
- CS = 1;
- }
- void ST7735_Data(uint8_t data) {
- CS = 0;
- DC = 1; // 数据模式
- SPI_Write(data);
- CS = 1;
- }
- void ST7735_Init() {
- RES = 0;
- __delay_ms(100);
- RES = 1;
- __delay_ms(100);
- ST7735_Command(0x01); // Software reset
- __delay_ms(150);
-
- ST7735_Command(0x11); // Sleep out
- __delay_ms(150);
- ST7735_Command(0x29); // Display on
|