搞到一个例程,虽然是51的, 但是我的ST版本也是用的模拟I2C, 分析一下吧:
unsigned char i=0;
TM1680start(); //I2C起始信号
TM1680SendByte(TM1680ID); //发送ID
Ack(); //等ACK
TM1680SendByte(SYSDIS); //发送系统DIS信号
Ack();
TM1680SendByte(COM8NMOS); //发送模式
Ack();
TM1680SendByte(RCMODE1); //master mode
Ack();
TM1680SendByte(SYSEN); //系统EN
Ack();
TM1680SendByte(LEDON); //LED开
Ack();
TM1680SendByte(PWM16); //PWM16
Ack();
TM1680SendByte(BLINKOFF); //BLINK关
Ack();
TM1680SendByte(faddr); //开始地址
Ack();
for(i=0; i<cnt; i++)
{
TM1680SendByte(sdate); //数据
Ack();
}
TM1680stop(); //停止位.