神农鼎
发表于 2024-2-13 15:16:58
21cnsound 发表于 2024-2-13 14:01
我的测试结果也是这样的,能提升最大传输速率。
I2C 肯定是 【开漏 + 打开上拉电阻/这样拉高的速度可以快些】
神农鼎
发表于 2024-2-13 15:18:25
I2C,只用 准双向口/弱上拉-这个弱上拉电阻温漂大/制造误差也大,那是无穷的隐患
===必须打开内部额外的上拉电阻或外部接传统的上拉电阻
Allspace
发表于 2024-2-13 21:11:30
void iic_master_init()
{
P3M0 |= 0x0c; P3M1 |= 0x0c; //开漏输出:P3_2和P3_3
P3PU |= 0x0c; //使能P3_2和P3_3的上拉电阻
P_SW2 &= ~ 0x30; //I2C: I2CSCL(P3.2), I2CSDA(P3.3)
I2CCFG = 0xe0; //使能IIC主机模式
I2CMSST = 0x00; //IIC主机状态寄存器清零
EA = 1;
}
设置了开漏输出加内部上拉电阻,但两个引脚在空闲状态下的电压是0.12V,这显然有问题啊。实际运行代码,发送START信号时,I2CMSST始终也不置中断位。
神农鼎
发表于 2024-2-13 21:26:18
神农鼎
发表于 2024-2-13 21:28:21
神农鼎
发表于 2024-2-13 21:29:33
结合这些,自己修改下
Allspace
发表于 2024-2-13 21:38:11
我用的芯片是STC8G1K08A-8PIN,I2C的引脚是P3_2和P3_3,代码是用STC-ISP工具生成的。
神农鼎
发表于 2024-2-13 21:48:45
这不一样
这不一样
神农鼎
发表于 2024-2-13 21:50:45
STC8G1K08A-36I-SOP8, 有点特殊
神农鼎
发表于 2024-2-13 21:52:32