STM32智能家居7天小项目(1)RTOS引入
文章目录
- 前言
- 一、裸机的开发方式
- 轮询
- 轮询的缺陷
- 事件驱动
- 二、中断优先级
- 中断优先级简介
- 轮询和事件驱动的结合
- 三、RTOS的引入
- 总结
前言
最近学习了百问网的7天智能家居项目,在此想要和大家分享一些智能家居开发经验。
一、裸机的开发方式
轮询
所谓轮询方式,即为轮流查询是否要处理当前任务,如果要处理则所有的CPU资源都用来处理当前的任务,其他任务需要等待当前任务处理完毕后才有机会执行。
轮询的缺陷
1.任务之间干扰严重,假如有某些任务耗时很长,后续任务就会等待很长时间才有机会执行。
2.无法及时响应重要任务。
事件驱动
事件通常和中断是一起讲的,于处理器而言,某个硬件产生的一个脉冲信号通知另一个硬件根据此信号做处理称之为事件,例如,定时器每隔1ms触发 ADC 去采样,这种就叫做事件,过程中不需要 CPU 参与;但是 ADC 采样完成之后需要 CPU 去处理采样的数据,所以需要告知 CPU 它采样完了, cPU 可以去取数据做处理了,那么 ADC 通知 cPU 采样完了这个动作就叫做中断。
二、中断优先级
Cortx-M3有256个优先级和128级抢占优先级。
中断优先级简介
每一个中断都有属于自己的中断优先级,中断优先级越高的中断越先相应,中断优先级高的中断可以打断正在执行的中断优先级低的中断,这也被称为中断嵌套。
轮询和事件驱动的结合
在实际开发中不可能单独使用轮询方式或者中断方式去编写程序和项目,一般会同时采用这两种方法。
三、RTOS的引入
在裸机开发过程中使用轮询和中断的方式可以解决大部分问题,但是在一些多任务、耗时长任务等复杂情况下,单纯的裸机开发已经不能满足需求了。
RTOS的具体讲解在我前面的文章有说到有兴趣的朋友可以去看看。
RTOS
总结
今天是学习智能家居项目的第一天,总的来说百问网的这个项目还是非常值得大家去学习的。
STM32智能家居7天小项目(1)RTOS引入相关推荐
- 毕业设计 stm32智能语音垃圾分类系统(项目开源)
文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 硬件部分 3.2.1 传感器模块 3.2.2 语音模块 3.2.3 电机及其驱动模块 3.2.4 稳压模块 ...
- STM32智能家居项目(7)大总结
文章目录 前言 一.学习过程 二.学习心得 前言 今天是学习百问网课程的最后一天,今天将对前面的学习进行一个总结. 一.学习过程 百问网的这套课程我个人感觉还是非常不错的,很适合新人去学习STM32, ...
- 从零开始手搓一个STM32与机智云的小项目——硬件介绍
文章目录 前言 硬件简介 选型 1.主控 2.电源 3.电机驱动 4.舵机驱动 5.USB转TTL 6.其他模块 原理图绘制 1.STM32最小系统 1.电源输入 2.晶振选择 3.复位电路 4.BO ...
- 基于STM32智能家居控制系统软件设计及实现
1.1 系统流程图 智能家居控制系统的软件设计主要使用Keil uVision5进行STM32主烧录程序的编写,主程序完成的功能主要为接收并判断语音识别模块传过来的信息,然后根据满足条件的不同进行对应 ...
- 基于ESP32的智能家居控制系统-微信小程序
一. 课题研究意义.现状及应用分析 1.1课题研究意义及现状 目前,科学技术发展十分迅速,其渗透到各行各业以及生活的方方面面,室内设计和高科技结合便出现了"智能家居".所谓智能家居 ...
- 写基于stm32智能家居控制系统设计论文
写作一篇基于STM32的智能家居控制系统设计论文需要涵盖以下内容: 简要介绍STM32微控制器的硬件特性和软件开发环境: 分析当前市场上关于智能家居控制系统的发展现状,并阐述为什么选择STM32作为系 ...
- 智能家居群雄逐鹿,小程序助力生态合作新模式
我国智能家居市场正在蓬勃发展.根据 CSHIA<2020中国智能家居生态发展白皮书>数据显示,2019年底中国已成为全球最大的物联网市场,全球15亿台蜂窝网络连接设备中9.6亿台来自中国, ...
- 盘点一下智能家居开源系统及项目——Home Assistant,openHAB
想要实现智能家居生活,自己搞也可以哦,只要你有技术.下面给大家盘点一下智能家居的开源系统及项目整理: 开源智能家居工具 Domoticz是一个轻量级的智能家居系统 ,通过它你可以监测和控制各种设备,包 ...
- 智能家居设计新生态 “小Home Assistant” 智汀一站式全屋智能解决方案
家,是我们栖息,给我们带来温暖.安全的港湾.随着时间的推移,技术的不断进步,智能家居变得越来越重要,具有实用性和颜值的智能产品设计会令人心情愉悦,同时也让我们的家居生活更加便捷和舒适.智能家居的设计, ...
最新文章
- adb: unable to connect for root: more than one device/emulator
- Spring Boot下的Redis缓存实战
- win7不显示移动硬盘_win7系统插上移动硬盘后灯一直闪但是不识别如何解决
- linux 块设备驱动 (三)块设备驱动开发
- SUSE Linux系统安全配置十条
- 即时大数据流处理=即时风暴
- 两高发布司法解释 依法严惩涉地下钱庄犯罪
- r语言ggplot画两条曲线_R语言作图——Line plot with error
- 《第三次浪潮》的体会!
- 冒泡排序解析 + 代码实现(C语言)
- C语言程序流程图switch,C语言流程控制之switch语句详解
- ContextCapture与Pix4D生成正射影像并进行拼接修图(附航测练习数据下载)
- 打造地图拼接利器(一)前言
- stm32波特率计算
- ImDisk(似收费的primo ramdisk)免费软件/内存作硬盘
- 嵌入式软件与设计 学习笔记总结一
- 3D图形学基础 基本概念
- 百度笔试题--论坛数据库表设计
- 阿里巴巴直播防控中的实人认证技术 1
- python添加高斯白噪声及其原理
热门文章
- ajax在jQuery的应用,Ajax在jQuery中的应用($.ajax()方法)
- CentOS(Linux) 如何解压文件rar 文件并使用
- Minio Prefix过多导致上传文件报错:code = SlowDown, message = Please reduce your request
- git用命令实现 discard的方法
- springmvc入门和前端控制器匹配方式url-patten
- Mac抓屏GIF制作工具-GIPHY CAPTURE
- 思科 CCNA2 第三章测验答案
- 指针的点运算和箭头运算(-)
- Drozer+天天模拟器环境搭建
- 缠手胶再也不求人,看图学龙骨手胶的缠法