本次使用实验使用的温湿度模块是DHT11,
开发板使用南京中科微CSM32RV20,
使用的IDE是 CSM Studio IDE 21.12.15版本。
DHT11采用的是单总线数据格式,通过IO口配置输出模式,然后发送起始信号后拉高总线,然后切换输入模式等待数据传输过来。将读取到的数据校验后,转换成温湿度即可。
读取温湿度并没有什么难度,主要是是想利用这个实验了解IO口的输入输出配置。
相比较于
STM32的IO口配置,CSM32的IO配置更加的精简。下面的IO口配置的代码,注释部分是原STM32的IO配置代码。
- // DTH11 ---> PB6
- // 输出模式
- void DHT11_OUT(void)
- {
- GPIO_MODE_Init(GPIOB,PIN6,GPIO_MODE_OUTPUT); //GPIO 模式
- GPIO_PULL_Init(GPIOB,PIN6,GPIO_PULLUP); //GPIO 上拉
- // GPIO_InitTypeDef GPIO_InitStruct;
- // GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;
- // GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽输出
- // GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//50M
- // GPIO_Init(GPIOB, &GPIO_InitStruct);//PB6
- }
- // 输入模式
- void DHT11_IN(void)
- {
- GPIO_MODE_Init(GPIOB,PIN6,GPIO_MODE_INPUT); //GPIO 模式
- GPIO_PULL_Init(GPIOB,PIN6,GPIO_PULLUP); //GPIO
- // GPIO_InitTypeDef GPIO_InitStruct;
- // GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;
- // GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOAtiNG;//配置浮空输入(外接上拉电阻)
- // GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//50M
- // GPIO_Init(GPIOB, &GPIO_InitStruct);//PB6
- }