- 打卡等级:以坛为家II
- 打卡总天数:441
- 最近打卡:2025-05-02 09:05:39
金牌会员
- 积分
- 1735
|
本帖最后由 乐此不疲 于 2023-1-30 12:10 编辑
最近我一直在用STC8H的板子做各种实验,目前工程中已经完美整合了TFT_LCD驱动、RTC时钟、硬件触摸按键,接下来要加入硬件I2C来驱动AHT25温湿度传感器,但出师不利只要主函数下主循环前使能I2C就死机,就是加入这句:I2CCFG = 0xE0;就死机黑屏,不知道这个寄存器操作与谁发生冲突了,请指点。先谢了!!!
部分主函数如下:
void main()
{
GPIO_set();//头文件中I/O口全部设置为准双向口
INT0 = 1; //外部中断0端口置高电平(头文件中定义位变量INT0=P3^2)
EX0 = 1; //使能 INT0 中断
EAXSFR();
Reset1();
lcd_initial();
Show_RGB (0,480,0,320,BLACK);
RTC_config();
//I2C_init();//此函数包含代码I2CCFG = 0xE0;!!!!!!!!!!!
key_init();
EA=1;
while(1)
{
*****
}}
问题原因已经找到了,是线路设计错误,是I2C与SPI总线共用了一个引脚造成的,一旦初始化了硬件I2C通讯端口就会与TFT-LCD通讯的SPI端口出现冲突从而出现黑屏死机的故障,将SPI总线改换其他I/O口并改成软件模拟SPI模式就一切正常了。
|
|