void IIC_Init(void) { RCC->APB2ENR|=1<<3;//先使能外设IO PORTB时钟 GPIOB->CRH&=0XFFFF00FF;//PB1/11 推挽输出 GPIOB->CRH|=0X00003300; GPIOB->ODR|=3<<10; //PB10,11 输出高 } //*** //IIC起始信号 //*** u8 IIC_Startvoid) { #ifdef BMI...
STM32用GPIO模拟IIC(I2C)通讯C语言源码 实测可用
Ok(unsafe { (*$GPIOX::ptr()).odr.read().bits() & (1 << self.i) == 0 }) } }impl<MODE> toggleable::Default for $PXx<Output<MODE>> {}impl<MODE> InputPin for $PXx<Output<MODE>> { type Error = Infallible;fn is_high(&self) -> Result<bool, Self::Error> { ...
GPIO设计 GPIO设计 配置模式 通用输出 复用功能输出 输入 推挽(Push-Pull)开漏(Open-Drain)推挽(Push-Pull)开漏(Open-Drain)模拟输入浮空输入下拉输入上拉输入 CNF1CNF0MODE1 0 0 1 1 0 1 MODE0 PxODR寄存器 0或10或1不使用 不使用 0 0 1 1 0 00 不使用 不使用 0 1 ...
输入数据寄存器GPIOx_IDRI/O作为输出配置时,写到输出数据寄存器GPIOx_ODR的值输出到相应引脚。输出数据寄存器GPIOx_ODR 5.1.2单独的位设置或位清除当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改一个或多个位。这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是GPIOx_...