发现勾选上电复位采用较长延时的一个怪现象
有两个LCD分别由STC8H8K64和STC8H2K12U,两个的单独控制显示都没有问题,
想着两个尽可能同步,
用了STC8H2K12U的P14设置为高阻输入模式接到了STC8H8K64的LCD_RESETP41推挽输出
开始两个都是默认选择了复位采用较长延时,我一般不改这里。
STC8H2K12U怎么都检测不到低电平, 用示波器能看到RESET信号的波形很好.
STC8H8K64的复位如下:
GPIO_Config();
LCD_RES = 1;
DelayMS(200);
LCD_RES = 0;
DelayMS(50);
LCD_RES = 1;
DelayMS(120);
STC8H2K12U的检测如下:
GPIO_Config();
while(1)
{
if(P14==0)
{
DelayMS(50);
LCD_Init();
LCD_Fill(RED);
}
}
后者一直进不去显示,将STC8H8K64的 复位长延时 勾选去掉 ,就正常了。
不太理解
这里不应该是将STC8H2K12U的 复位长延时 勾选去掉,这样正常才合理吗?
用户程序运行之前IO高阻,两个单片机IO接一起,要加上拉或下拉电阻以确定用户程序运行之前的状态 DebugLab 发表于 2025-7-1 19:48
用户程序运行之前IO高阻,两个单片机IO接一起,要加上拉或下拉电阻以确定用户程序运行之前的状态 ...
这个只是程序运行之前的状态,不影响启动后吧
后面我反复循环操作主STC8的IO高低循环
然后从STC8是一直在while循环判断
一次都识别不到 DebugLab 发表于 2025-7-1 19:48
用户程序运行之前IO高阻,两个单片机IO接一起,要加上拉或下拉电阻以确定用户程序运行之前的状态 ...
这一点确实发现了,不上拉检测会乱跳,打开内部上拉也有效 liners 发表于 2025-7-2 11:01
这一点确实发现了,不上拉检测会乱跳,打开内部上拉也有效
这个方案有效
然后两个单片机复位时间都挺长,也略有不同,调整后可以实现目标了。 liners 发表于 2025-7-2 11:32
这个方案有效
然后两个单片机复位时间都挺长,也略有不同,调整后可以实现目标了。 ...
IO上电高阻,必须先设置模式才能输出
页:
[1]