版主在不?51头文件改为STC运行不正常。
本帖最后由 ZHAOBAO511 于 2022-1-21 10:50 编辑版主在不?51头文件改为STC运行不正常。有个程序是51的头文件在STC15上运行正常,改为STC15的头文件反而运行不正常了,是个OLED显示屏,一直黑屏,IO口有反应,就是屏不亮,请问还要改哪个地方才正常? 高阻准双向口这里{:lol:}{:lol:}{:lol:} 本帖最后由 ZHAOBAO511 于 2022-1-21 11:18 编辑
lb0857 发表于 2022-1-21 11:03
高阻准双向口这里
谢谢,配置了,还是不行。P0M1 = 0; P0M0 = 0; //设置为准双向口
P1M1 = 0; P1M0 = 0; //设置为准双向口
P2M1 = 0; P2M0 = 0; //设置为准双向口
P3M1 = 0; P3M0 = 0; //设置为准双向口
P4M1 = 0; P4M0 = 0; //设置为准双向口
P5M1 = 0; P5M0 = 0; //设置为准双向口
P6M1 = 0; P6M0 = 0; //设置为准双向口
P7M1 = 0; P7M0 = 0; //设置为准双向口
这里全配为准双向口,然后OLED接口是I2C。另外是不是晶振问题?在STC头文件有个晶振选项,51的没有,就是内部默认了。外边没接晶体。 示波器 或者 逻辑分析仪看看时序哦 lb0857 发表于 2022-1-21 13:24
示波器 或者 逻辑分析仪看看时序哦
好的,谢谢 示波器看看是否有访问OLED屏信号,没有就要查程序,有的话,看看速度是否过快(I2C)。 小李非刀 发表于 2022-1-21 13:58
示波器看看是否有访问OLED屏信号,没有就要查程序,有的话,看看速度是否过快(I2C)。 ...
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...
我在STC8系列单片机上 使用硬件IIC,在6.00MHz 下,实测最高速度刚好400KHz.所以你可以试试6MHZ或增加必要的nop指令 kundi 发表于 2022-1-21 15:12
我在STC8系列单片机上 使用硬件IIC,在6.00MHz 下,实测最高速度刚好400KHz.所以你可以试试6MHZ或增加必要 ...
明白了,谢谢,可能是太快了。 ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...
51分12T、6T、4T、假1T、准1T、真1T、完美1T,运行速度都不一样 modbus 发表于 2022-1-21 16:46
51分12T、6T、4T、假1T、准1T、真1T、完美1T,运行速度都不一样
谢谢,以前只用了89S51的,看来那个是12T; ZHAOBAO511 发表于 2022-1-21 14:03
51程序和STC的难道运行速度还不一样?晶振问题?51没有设置晶振的地方,STC的我设为内部11.0592MHZ。 ...
如果你原来的程序是在最老的89系列上验证的,则改为STC10、STC11、STC12、STC15、STC8系列,速度原来越快,I2C访问就会出问题。我也大量使用I2C接口的0.96寸12864 OLED屏,其访问速度最好不要超过1MHz。比如这样操作:
B = dat;
SDA = B7;NOP(5); SCL = 1; delay_1us(); SCL = 0; delay_1us(); //写一个位
小李非刀 发表于 2022-1-24 13:55
如果你原来的程序是在最老的89系列上验证的,则改为STC10、STC11、STC12、STC15、STC8系列,速度原来越快 ...
好的,谢谢。
页:
[1]