初级会员

- 积分
- 169
- 金钱
- 169
- 注册时间
- 2014-12-21
- 在线时间
- 1 小时
|
发表于 2015-5-10 12:04:36
|
显示全部楼层
DHT11固定在比如PG口高8位,例程改为(STM32F1的例程,没有F3/F4开发板,不过估计也没多大区别)
//IO方向设置
#define DHT11_IO_IN(n) {GPIOG->CRH&=(~0XF<<((n-8)*4));GPIOG->CRH|=8<<((n-8)*4);}
#define DHT11_IO_OUT(n) {GPIOG->CRH&=(~0XF<<((n-8)*4));GPIOG->CRH|=3<<((n-8)*4);}
////IO操作函数
#define DHT11_DQ_OUT(n)  Gout(n) //数据端口 PGn
#define DHT11_DQ_IN(n)   Gin(n) //数据端口 PGn
程序里面要相应修改,每个函数都要加一个代表端口的参数 int8u n,比如:
void DHT11_Rst(void) 要修改成:
void DHT11_Rst(int8u n)
{
DHT11_IO_OUT(n); //SET OUTPUT
DHT11_DQ_OUT(n)=0; //拉低DQ
delay_ms(20); //拉低至少18ms
DHT11_DQ_OUT(n)=1; //DQ=1
delay_us(30); //主机拉高20~40us
} |
|