我用原子个模拟的IIC程序能够读取我的芯片值,但是我换个IO口模拟就会出现读不出数据或者OXFF!这是什么情况?我只是换了端口
//#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
//#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
//#define SCL_OUT() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=3<<8;}
#define SCL_OUT() {GPIOB->CRH&=0XFFF0FFFF;GPIOB->CRH|=3<<16;}
#define SDA_IN() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=8<<20;}
#define SDA_OUT() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=3<<20;}
//#define SDA_IN() {GPIOB->CRH&=~(0XF<<(3*4));GPIOB->CRH|=8<<3*4;}
//#define SDA_OUT() {GPIOB->CRH&=~(0XF<<(3*4));GPIOB->CRH|=3<<3*4;}
//#define SDA_IN() {GPIOB->CRH&=~(0XF<<(4*4));GPIOB->CRH|=8<<4*4;}
//#define SDA_OUT() {GPIOB->CRH&=~(0XF<<(4*4));GPIOB->CRH|=3<<4*4;}
//IO2ù×÷oˉêy
/*#define IIC_SCL_SET GPIO_SetBits(GPIOB,GPIO_Pin_10)
#define IIC_SCL_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_10)
#define IIC_SDA_SET GPIO_SetBits(GPIOB,GPIO_Pin_11)
#define IIC_SDA_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_11)
#define READ_SDA GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11) //êäèëSDA */
#define IIC_SCL_SET GPIO_SetBits(GPIOB,GPIO_Pin_12)
#define IIC_SCL_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_12)
#define IIC_SDA_SET GPIO_SetBits(GPIOB,GPIO_Pin_13)
#define IIC_SDA_CLR GPIO_ResetBits(GPIOB,GPIO_Pin_13)
#define READ_SDA GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) //êäèëSDA
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那變數名稱你也不能動
像是原本
#define SCL_OUT()
那你能動的是後面的參數{GPIOB->CRH&=0XFFF0FFFF;GPIOB->CRH|=3<<16;}
而不是你另外去宣告不同參數名稱
另外你要用兩組IIC模擬 變數名稱也要不同
一周热门 更多>