本帖最后由 zhange 于 2024-5-21 16:24 编辑
第三十集:软件模拟IIC下
1.发送ack 函数
-
- void iicSendAck(void) //ack
- {
- SDA = 0;
- Delay2us();
- SCL = 1;
- Delay2us();
- SCL = 0;
- Delay2us();
- }
-
- void iicSendNoAck(void) //noack
- {
- SDA = 1;
- Delay2us();
- SCL = 1;
- Delay2us();
- SCL = 0;
- Delay2us();
- }
复制代码
2.接收ack指令
- void iicDengAck(void) //等到从机ACK 1是不应答 0是应答
- {
- SDA = 1;
- Delay2us();
- SCL = 1;
- Delay2us();
- ack = SDA;
- Delay2us();
- SCL = 0;
- Delay2us();
-
- }
复制代码
3.发送一个字节
- void iicSendOne(u8 dat) //发送一个字节
- {
- u8 i=8;
- SCL = 0;
- do
- {
- if( dat& 0x80 )
- SDA = 1;
- else
- SDA = 0;
- Delay2us();
- dat<<=1;
- SCL = 1;
- Delay2us();
- SCL = 0;
- Delay2us();
- }
- while(--i);
- }
复制代码
。。。。换楼 太长了 不好编辑
|