工具/软件:Code Composer Studio
大家好、我尝试使用硬件 SPI 来控制 TFT-LCD。 在使用软件 SPI 时、LCD 可能会出现故障。
我的代码中唯一的区别是、如果#define USE_hardware_SPI、WriteData 函数将使用 SPI 模块或使用软件 SPI。
这里是我的 SPI 配置代码、实际上我参考了示例代码:
void SPI_Init (void){
InitSpiaGpio();
SpiaRegs.SPIFFTX.All=0xE040;
SpiaRegs.SPIFFRX.All=0x204f;
SpiaRegs.SPIFFCT.All=0x0; //delay=0
SpiaRegs.SPICCR.all =0x0007; //复位打开、上升沿、8位字符位
SpiaRegs.SPICTL.ALL =0x0006; //启用主控模式、正常相位、
//启用 TALK、禁用 SPI int。
SpiaRegs.SPIBRR = 0x007F;
SpiaRegs.SPICCR.all =0x0087; //从复位中撤回 SPI
SpiaRegs.SPIPRI.bit.FREE = 1; //设置断点以避免干扰 xmission
}
void SPI_WriteData_Hardware (无符号字符数据){
uint16 temp、clear;
temp=数据;
SpiaRegs.SPITXBUF=(temp<8);
while (SpiaRegs.SPIFFRX.bit.RXFFST!=1){}
CLEAR_SpiaRegs.SPIRXBUF;
}
问题是、当我构建项目时、CCS 将发出警告:
设置了变量"Clear (清除)"、但从未使用过。
实际上、当我逐步运行它时、程序可以运行函数 SPI_WriteData_Hardware 中的最后一步。 但 LCD 仍然无法显示。 我认为 SPI 可能是问题所在。
请帮帮我。 非常感谢。