项目中使用到rt—thread就会涉及到对操作系统的一个软件框架的搭建过程思路,这里拿已经完成城的项目做一些分享,希望对读者有些启发。
项目要求:读取温湿度,串口打印,数据定时发送,lcd显示,平台上传,按键设置,sd 卡存储等
系统涉及到的硬件由以下几部分组成:
1.交互输入部分:按键
2. 输出部分:tftlcd屏幕显示,sd卡存储,led灯报警
3. 传感器采集:dht11温湿度采集
4. 通讯部分:串口,wifi模块
5. 计时部分:rtc时钟计时
硬件连接示意图 根据硬件的连接与系统要求实现的功能来看:
1.首先要做的就是根据硬件电路写好底层驱动(hal)
2.进行函数的划分与封装,将应用层需要的函数封装好
3.进行中断函数的撰写与封装(可以将该这一步与第2步同时进行)
4.由于中断的优先级比任何的线程优先级都要高因此需要统筹线程与中断的关系
5.继续线程的规划,线程优先级定义及应用层函数的撰写
软件程序结构:
项目系统要求定期发送数据到平台,其中在定时器超函数中周期性采集温湿度信息,并发送消息队列到处理缓存传感器信息的线程和超温处理线程,同时发布采集到一次传感器的事件。
超温处理线程接收消息判断是否超过温度,wifi模块通过串口2将温湿度信息发送给wifi模块,由wifi模块实时上传到服务器。同时串口温度上传任务同时接收定时器发送的事件和pc机通过串口1发送的获取温度标志所触发的事件。当采集到传感器信息且上位机要求获取温湿度信息的事情同时发生时,通过串口1向pc发送温湿度信息。由于sd卡存储缓慢,所以由温湿度信息缓存线程在内存池中申请内存,并将获取到的温湿度信息缓存到内存中,同时更新lcd曲线绘制的历史温湿度信息缓存。
lcd处理线程处理io口中断发送过来的标志信息,并据此显示相应的菜单,温度湿度信息,显示所设定采样频率与阈值的情况等。
sd卡存储任务作为后台任务,从缓存存储温湿度信息的内存中读取温湿度信息,并通过fatfs文件系统将相应的温湿度信息存入sd卡,同时根据每片内存的头部时间信息以及定时器采样频率推算本片内存中其他数据的时间信息,并将采样时间一起保存到sd卡中。在存储完一片内存片后,释放该内存到内存池之中。流程图如下所示:
代码部分这里贴出主函数中的基本逻辑框架:
锂电池是什么时候开始发明出来的?锂电池的优势
检查大功率双向晶闸管触发能力的方法
中国联通5G基站在牡丹江市第一人民医院正式开通
OQ充电站 | 全球对量子计算机市场需求空间有多大?
叠层片式铁氧体超大电流磁珠
基于RT-Thread操作系统软件框架设计思路
福州智慧工地人脸测温健康码核验一体机
Uber发文谈论自动驾驶可视化工具 将数据变成图像
华为成功获得韩国运营商5G订单 设备占比95%
分享香蕉插测试线的保养方法
继电器控制与接触器控制的区别
奥迪宣布将推出新的数字OLED技术
兆瓦级永磁整充退磁技术迎来突破,推进永磁设备向更高性能发展
断路器失电后定值会复归零吗?
电力行业发展在5G时代迎来哪些改变
基于SPI总线控制器IP核的硬件结构及实现微投影系统的设计
OPPOR11发布会直播进行时:OPPOR11发布会请了半个娱乐圈超厉害,OPPOR11发布会现场演唱会的节奏
美国汽配展/美国拉斯维加斯国际汽车零部件展
小样本学习领域的未来发展方向
指定石英晶体