1,首先是配置其GPIO的功能 2,初始化GPIO 3,设置GPIO输出高低电平 输出高电平: GPIO_PinWrite(GPIO_PORT, 1 << GPIO_PIN, 1 << GPIO_PIN); 输出低电平: GPIO_PinWrite(GPIO_PORT, 1 << GPIO_PIN, 0); 按照上面那样子写就可以,不必深究, 因为最终也只不过是配置寄存器的某些位的数据而已. 4,假设设...
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> { ...
1,首先是配置其GPIO的功能 2,初始化GPIO 3,设置GPIO输出高低电平 输出高电平: GPIO_PinWrite(GPIO_PORT, 1 << GPIO_PIN, 1 << GPIO_PIN); 输出低电平: GPIO_PinWrite(GPIO_PORT, 1 << GPIO_PIN, 0); 按照上面那样子写就可以,不必深究, 因为最终也只不过是配置寄存器的某些位的数据而已. 4,假设设...
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...