如题,在看探索者stm32F407原子的IIC的例程中,对如下
红 {MOD}方框中的这个函数有些疑惑,还请各位帮忙解疑。谢谢。
我想不明白的是,应答信号是由接收器产生的。那么应该是接收器发出应答信号。
可是在myiic.h的文件中,定义的是PB9是SDA_IN()和SDA_OUT().
[mw_shl_code=applescript,true]//IO方向设置
#define SDA_IN() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;} //PB9输入模式
#define SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;} //PB9输出模式[/mw_shl_code]
所以,按照我的理解,如上图红 {MOD}方框中的这个地方,
应该是SDA_IN()才对吧?
对这个in和out没怎么看懂。应该就是gpio的输入和输出模式吧?
1.这两个都是主机作为接收时发出给从机的应答,既然是发出,当然是out。
2.如果主机发送数据,从机接收,则由从机向主机发ack,此时就是主机等ack进来,那就得是in吧?就是那个waitack函数了。
对。接收的发。
那两个接收器都是master,也就是arm。是out没问题啊。
哦哦,我想通了。是接收器发,我以为这个SDA_OUT()和SDA_IN()的主体只能是发送器呢。sorry。
一周热门 更多>