1.要求
- 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:
1)解释什么是“软件I2C”和“硬件I2C”? (阅读野火配套教材的第23章“I2C–读写EEPROM”原理章节)
2)阅读AHT20数据手册,编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)。
- 理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:
-
显示自己的学号和姓名; -
显示AHT20的温度和湿度; -
上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。
2.实现
一.温湿度采集
重要代码
void showData(){
GUI_ShowCHinese(15,28,16,"???è",1);
GUI_ShowString(47,28,":",16,1);
GUI_ShowString(62,28,temp,16,1);
GUI_ShowCHinese(96,28,16,"??",1);
GUI_ShowCHinese(15,48,16,"êa?è",1);
GUI_ShowString(47,48,":",16,1);
GUI_ShowString(62,48,hum,16,1);
}
LED 串口设置
结果展示
二.OLED显示
重要代码
OLED_Clear(0);
OLED_WR_Byte(0x2E,OLED_CMD);
OLED_WR_Byte(0x27,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x02,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0xFF,OLED_CMD);
结果展示
三.参考
基于I2C/SPI的温湿度采集与OLED显示
|