原子哥的IIC实验里面。SDA用的PB11,直接通过寄存器操作设置 IO 口的模式为输入还是输出,这样定义的
#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
我用PB7,这样定义
#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;}
结构出现警告了,
..\HARDWARE\IIC\iic.c(44): warning: #61-D: integer operation result is out of range
..\HARDWARE\IIC\iic.c(44): warning: #68-D: integer conversion resulted in a change of sign
..\HARDWARE\IIC\iic.c(109): warning: #61-D: integer operation result is out of range
..\HARDWARE\IIC\iic.c(109): warning: #68-D: integer conversion resulted in a change of sign
但是实验正常。求指教
|