![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
智能家居项目
文章平均质量分 57
猪仔726
这个作者很懒,什么都没留下…
展开
-
【智能家居项目】工程文件移植(需补充)
6.使用外设时:观察:是否配备外设.c文件,是否在conf.h中使能宏定义,是否添加include头文件,是否初始化正确。0.按键 软件消抖 延时 二次判断,缺点 过于灵敏/迟钝——改进:定时器TIM中断消抖。5.Keil系统配置:C/C++全局定义宏,添加编译路径。7.main.h需自行创建,并包含指定头文件。4.在Keil中新建工程,添加文件。2.在STM系统固件包中进行移植。1.自行创建工程文件夹分类。3.具体移植文件看视频。原创 2024-04-23 14:38:26 · 158 阅读 · 0 评论 -
【智能家居项目】基本功能配置
使用static修饰的函数具有内部链接属性,只能在当前文件中调用,其他文件无法调用。PC主机与ARM开发板有通信连接/PC主机运行ARM的某种程序:ARM写入后,触发异常SVC,主机读取异常,再打印出来。3)使用外部文件定义的函数,要么include其头文件,要么使用extern外部变量,优先声明该函数。1)如何用HAL移植:新建HAL模板,移植到原函数,记得添加外设文件,使能宏,包含头文件,初始化。禁用半主机模式,需移除相关函数,复杂,若无需要,不推荐使用。5)按键读函数,why?0)结构体 指针数组。原创 2024-04-24 14:49:33 · 267 阅读 · 0 评论 -
【智能家居项目】RTOS正式引入
1.明确任务量:5个Task+1个识别任务(读取定时器任务标志)=共6个任务。3.更改定时器,因用RTOS则不可使用SysTick,随便更改一个TIM。4.更改优先级大小,根据RTOS要求(看弹出框提示),需 ≥5。0.不同时长的任务 引入枚举类型+按位分析。原创 2024-04-22 10:36:36 · 150 阅读 · 0 评论 -
【智能家居项目】RTOS初步(3)轮询与事件驱动的组合
2) 在while中执行,开关定时器和控制LED亮灭,如果关闭定时器,则串口打印不执行。2)main函数,while串口打印TIM轮询,若按键中断关闭TIM,则串口不显示。2.事件驱动:增加按键中断,使其控制定时器的开关,同时控制LED亮灭。1.实验一:轮询按键中断标志,在主函数中控制定时器开关和LED亮灭。2.实验二:在按键中断服务中控制定时器开关和LED亮灭。1.轮询:定时器 不同时间 处理 不同任务 ,引出标志位,将中断函数中的处理提到主函数执行。1)增加LED输出配置(默认不亮),其余默认。原创 2024-04-20 14:36:20 · 184 阅读 · 0 评论 -
【智能家居项目】RTOS初步(2)——中断嵌套
TIM的中断对SysTick有影响:每隔1ms,SysTick和TIM均会产生中断,但SysTick的中断优先级为7,所以一直都只执行TIM2的中断,不执行SysTick的中断;改进方法:降低TIM的频率,改为10ms产生一次中断,但无论如何,仍存在bug。在tim.c、gpio.c初始化,在it.c内有中断服务函数。2.定时器TIM2先触发(0,1),外部按键中断后触发(1,1)4.while函数为空,等待中断的发生即可,串口打印显示。1.实现内部时钟中断+外部按键中断,并进行中断嵌套。原创 2024-04-20 13:17:53 · 197 阅读 · 0 评论 -
【智能家居项目】工程初始化
1.推挽输出(Out Push Pull):由PMOS和NMOS控制,输出高低电平,有不同的MOS导通直连VDD或VSS,增加控制端口对GPIO口的电流,即驱动能力增大。4)中断函数调用至回调函数,回调函数自行编写,在对应的.c文件中(如按键则编写在gpio.c),或者编写在main.c也可。上拉和下拉输入:在输入IO口后接上下拉电阻,若无输入,则为上\下拉,有输入,则反之?浮空输入:IO口直接肖特基触发器(模拟转为数字量),外部输入不确定,(0-max v均有可能)2)NVIC中使能中断线,调整优先级。原创 2024-04-01 12:11:36 · 762 阅读 · 0 评论 -
【智能家居项目】RTOS初步(1)——中断基础
内含 __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 中断回调函数,在内写操作。5.void EXTI0_IRQHandler(void) void EXTI4_IRQHandler(void) 中断服务函数。共用HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4);GPIO外部中断处理函数。2.事件 中断 驱动方式,中断服务函数尽量不处理复杂事情。3.三行按键法不用中断 是否均适用?原创 2024-04-19 10:59:32 · 210 阅读 · 0 评论 -
【智能家居项目】代码实现
(3)向ESP8266发送AT指令,并观察返回值,在串口给出反馈,注意,新定义的数组buf可同时用作AT指令的发送和接收,因为时间可错开。(2) 基础串口函数,发送接收的数据,需引出中介值,数组指针*pdata,在之后的main函数中调用接收函数有用。(1)读写重定向,用于串口输出printf与读入getchar,记得使用MicoLib。TCP:先发一个指令(固定ID号0),发送成功后再发送指令自定义长度的数据。2.再在模块.h声明。1.基本串口代码(usart.c)基本顺序:1.先写模块.c,原创 2024-04-19 10:01:49 · 270 阅读 · 1 评论