在使用快速IIC时遇到的问题,获取SLAVE的ACK应答时出错。
程序如下:
void I2C_TXDATA(void)
{
    ...
    mov.b #8,R0H
    Tx8: shl.b   #1,R0L   //移最高位入C
    jc     BitHi                   //判断高位是否为1,是则跳转到BitHi
   BitLo: bclr SDA,00E5H                     //SDA拉低
   jmp BitEnd
   BitHi: bset SDA,00E5H                      //SDA拉高
   BitEnd:
            nop
            bset SCL,00E5H                          //SCL拉高
            nop               ......// 10个nop
            bclr SCL,00E5H                           //SCL拉低
            nop
            nop
            dec.b R0H                              //不为0则跳转到Tx8
            jne Tx8
  ackn:
          nop
          nop
          nop
           bset SDA,00E5H                      //SDA拉高,Master
           bclr  SDA,00E7H                       //SDA设置为输入
           bclr  SCL,00E5H                       //允许Slave改变SDA
           nop ........                                      // 18个nop
//此时看SDA的电平为高,也就是说ACK返的是NG.           
           bset  SCL,00E5H
           nop.......                                       //10个nop
           bclr   SCL,00E5H                       //SDA发生改变需要的脉冲
           nop
           nop
           nop
          bset  SDA,00E5H
...............
}
只发送一个byte数据时返回的ACK为OK的,但由于要发送多个判断,C语言当中要进行判断字节数,所以到发送第二个字节时ACK就NG了。问题怎么解决?										
					
					
							
					
共6条
1/1															1							跳转至页
		 
					
				5楼
														
															
	CISC指令集单片机用软件延时不准确的
MOV指令的执行周期在软件手册中为3个指令周期
可实际上要比这个数大几倍呢
比如10MHz下,MOV指令(RAM到RAM的寻址)的完成实际要1us左右,是手册中周期的3倍多
					
					
							
					
					MOV指令的执行周期在软件手册中为3个指令周期
可实际上要比这个数大几倍呢
比如10MHz下,MOV指令(RAM到RAM的寻址)的完成实际要1us左右,是手册中周期的3倍多
共6条
1/1															1							跳转至页
		回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |

 
					
				
 
			
			
			
						
			 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

