大家可以看看在msp432里面我们是如何实现的: //IO方向设置 #define SDA_IN() GPIOPinTypeGPIOInput(GPIO_PORTG_BASE, GPIO_PIN_0) #define SDA_OUT() GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_0) //IO操作函数 #define IIC_SCL HWREG(GPIO
本文首先利用CubeMX直接生成STM32F0的Keil工程代码,将PA9(SCL)和PA10(SDA)设置普通的输出引脚。需要注意的是SCL一直由主机提供,故一直都是输出模式;但是SDA为数据线,当从机传数据至主机的时候,主机需要将SDA的模式改为输入模式。代码如下 #define SDA1_IN() IIC_SDA_GPIO_Port->MODER &= ~(0x3<<(10*2)...
STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和输出寄存器GPIOx_IDR和GPIOx_ODR,1个32位置位复位寄存器GPIOx_BSRR,1个32位锁定寄存器GPIOx_LCKR和2个32位复用功能选择寄存器GPIOx_AFRH和GPIOx_AFRL. GPIO的输出...
SDA_OUT GPIOA->MODER|=((uint32_t)GPIO_Mode_OUT)<<(2*2))#define SDA_IN GPIOA->MO...