概述
目录
项目简介
硬件模块
软件工具
电路连接图
工作流程
程序代码
结语
项目简介
利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。这是第二部分针对单总线通信的一个典型例子——DHT11温湿度传感器,主要用于对STM32中GPIO模块和单总线通信的理解。
硬件模块
STM32F103R4
DHT11
LCD1602
74HC373
软件工具
CubMX
Proteus
KEIL
电路连接图
STM32F103R4
DHT11
LCD1602
工作流程
首先还是先利用CubMX创建一个KEIL工程设置PA0位DHT11的数据口,这里之所以选用PA0,主要是有些版本的Proteus会有一些BUG,就是只有PA0端口有输入的功能,换句话说,就是只有PA0能够作为输入被单片机读取到数据。我一开始用的是8.6版本的Proteus,会有这个问题,后来下载更高版本的Proteus也可以解决这个问题,即其余端口也可作为输入口。
时钟根据自己习惯保持默认即可。
其余也是一样保持默认
然后,在生成的KEIL工程里编写相应程序即可。程序主要代码部分在“程序代码” 标题里。
最后,在Proteus中仿真验证。结果如下图所示。
程序代码
mian.c
unsigned char buff[10];
unsigned char temp,humi;
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
LCD_INIT();
DHT11_Init();
while(1)
{
/**********功能1:显示温湿度数据******************/
DHT11_Read_Data(&temp,&humi);//读取DHT11的温湿度数据
sprintf((char *)buff,"%.2d %.2d",temp,humi);
LCD_WRITE_StrDATA(buff,0,0);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
DHT11.c
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
unsigned char DHT11_Read_Data(unsigned char *temp,unsigned char *humi)
{
unsigned char buf[5];
unsigned char i;
DHT11_Rst();
if(DHT11_Check()==0)
{
//HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
for(i=0;i<5;i++)//读取40位数据
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi=buf[0];
*temp=buf[2];
}
}else return 1;
return 0;
}
结语
本文大部分内容都属于原创,如需转载,请附上本文网站,
如果需要相关的仿真图、程序代码等资料可以直接私信我,我会及时回复。
最后
以上就是清爽世界为你收集整理的使用CubMX和Proteus学习STM32单片机(二)------DHT11项目简介硬件模块软件工具电路连接图工作流程程序代码结语的全部内容,希望文章能够帮你解决使用CubMX和Proteus学习STM32单片机(二)------DHT11项目简介硬件模块软件工具电路连接图工作流程程序代码结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复