你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

主发送I2C发送完数据后没有接收到应答信号

[复制链接]
watercici 提问时间:2018-3-26 15:09 /
阅读主题, 点击返回1楼
收藏 评论34 发布时间:2018-3-26 15:09
34个回答
watercici 回答时间:2018-4-11 15:47:40
stm1024 发表于 2018-3-28 18:07
你的STM32在作为主机发送数据到IIC总线上时,配置为输出模式,这个OK,但是需要从PCF8563中得到应答,相当 ...

是的,有方向改变的语句
xhnishiwo 回答时间:2018-4-11 20:44:55
帮顶
casc12 回答时间:2018-5-19 17:21:25
看一下从设备地址是否正确,可能是主发送的地址和从设备地址不匹配,所以从不响应
casc12 回答时间:2018-5-19 17:25:00
wenyangzeng 发表于 2018-3-26 17:30
楼主在发送函数 I2C_Send_Byte()中的变量txd一会儿右移:
(txd&0x80>>7)
一会儿左移:

for(t=0;t<8;t++)
    {              
        IIC_SDA=(txd&0x80)>>7;
        txd<<=1;           
                delay_us(2);   
                IIC_SCL=1;
                delay_us(2);
                IIC_SCL=0;       
                delay_us(2);
    }
(txd&0x80)>>7是为了取txd的最高位, txd<<=1; 是将下一位数据移位到最高位,就可以(txd&0x80)>>7取走最高位
casc12 回答时间:2018-5-19 17:29:37
stm1024 发表于 2018-3-28 18:07
你的STM32在作为主机发送数据到IIC总线上时,配置为输出模式,这个OK,但是需要从PCF8563中得到应答,相当 ...

设置方向的确是SDA_IN
#define SDA_IN()  {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;}       
#define SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;}
123

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版