![]() |
發布時間: 2019-3-23 15:57
正文摘要:自己在第一次使用溫度傳感器DHT11時,想不用正點原子的源程序的那個引腳,就自己改了,但是一直沒有成功,自己也移植很多次,但是都沒有成功,今天我來回給大家說說怎么改吧首先 //#define DHT11_IO_IN() & ... |
這種改變的方法極為不便。以IIC操作可以這樣改,先做好全局定義: #define IIC_SDA_PORT GPIOD #define IIC_SDA_PIN GPIO_Pin_4 #define IIC_SDA_SOUR GPIO_PinSource4 下面是STM32F1的配置方法 #if IIC_SDA_SOUR < 8 //PIN 0-7 #define SDA_IN() {IIC_SDA_PORT->CRL&=(~((u32)15<<(IIC_SDA_SOUR*4)));\ IIC_SDA_PORT->CRL|=(u32)8<<(IIC_SDA_SOUR*4);} #define SDA_OUT() {IIC_SDA_PORT->CRL&=(~((u32)15<<(IIC_SDA_SOUR*4)));\ IIC_SDA_PORT->CRL|=(u32)3<<(IIC_SDA_SOUR*4);} #else //PIN 8-15 #define SDA_IN() {IIC_SDA_PORT->CRH&=(~((u32)15<<((IIC_SDA_SOUR-8)*4)));\ IIC_SDA_PORT->CRH|=(u32)8<<((IIC_SDA_SOUR-8)*4);} #define SDA_OUT() {IIC_SDA_PORT->CRH&=(~((u32)15<<((IIC_SDA_SOUR-8)*4)));\ IIC_SDA_PORT->CRH|=(u32)3<<((IIC_SDA_SOUR-8)*4);} #endif 下面是F4的配置方法: #define SDA_IN() {IIC_SDA_PORT->MODER&=~(3<<(IIC_SDA_SOUR*2));\ IIC_SDA_PORT->MODER|=0<<IIC_SDA_SOUR*2;} #define SDA_OUT() {IIC_SDA_PORT->MODER&=~(3<<(IIC_SDA_SOUR*2));\ IIC_SDA_PORT->MODER|=1<<IIC_SDA_SOUR*2;} 調整一個引腳,只需修改對應的全局宏定義即可。關注我,編程不迷路 ![]() |