本帖最后由 伸手不及放手为空 于 2018-1-15 10:49 编辑 目前使用一款MCP4728芯片,但他只有4个通道,而我需要扩展到8通道,也就是要在添加一个芯片,此时便需要对其中一片重写地址。 如下方图所示,需要在其第2字节第8位之后和ACK之前,将LDAC置0 那么现在的问题是倘若程序为: //上方程序省略 while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); I2C_SendData(0x61); //第2字节 GPIO_WriteLow(GPIOC,GPIO_PIN_3); while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); //停留此处,不再向下执行 I2C_SendData(0x66);//第3字节 //下方程序省略 那么第2字节数据发完后,将LDAC引脚置0,此时其ACK便会被影响,程序卡住。若GPIO_WriteLow(GPIOC,GPIO_PIN_3);这一句不写程序正常向下执行。请问有什么办法能使发送完第8位数据后,同时LDAC置0,而不影响ACK。 望大神们能指点一二。 |
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
如何使用ST官网例程_LIN总线通讯_STM8AF
STM8 LIN
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
cosmic stm8 license网页申请按键没反应,可能是什么原因?
现在有个问题,你的“I2C_SendData(0x61); //第2字节”,这行程序执行后,到了第几位了?
LDAC必须到第8位正脉冲结束之后,并且在第9位的ACK位时钟拉高之前,由高置低才行。
建议用示波器看一下真实波形,到底LDAC在哪位来的?
可以先读一下地址看能不能行,如果读不行的话,写肯定更不行了。
这是从Microchip官网下载的手册
评分
查看全部评分
读地址,获取数据
写地址,写地址数据;
评分
查看全部评分
建议使用示波器,看看波形是否正确。
评分
查看全部评分