-
网上搜索可能因为大家不太关心这种情况,我没有找到有关论述单片机main函数退出的文章。不过在STCommunity、阿莫BBS、StackOverflow看到有人在问同样的问题,下面摘录了一些不同角度的回答:C语言环境角度,三种可能性编译器在main函数后加入隐性的无限循环编译器在main外面添加一层无限循环CPU继续向下取址运行(也就是跑飞了)单片机设计角度,退出会引发异常、...[详细]
-
为了实现对家居环境安全状况实时的监控以及在发生警情时能自动拨号进行语音提示或发送报警短信,设计了一种基于GPRS的嵌入式电话报警系统。该系统以SoC(在片系统)单片机C8501F020为控制与处理核心,并利用2.4GHz数字无线传输技术连接传感器,接收传感器采集的信号,对周围环境进行监控。同时,该系统结合GPRS短信功能和固定电话网络,实现报警信息的可靠传递和远...[详细]
-
一、独立看门狗 STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。 在键值寄...[详细]
-
在了解重定向之前,我们先来看看linux的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit–n定义数字有关系,不能超过最大值。linux启动后,会默认打开3个文件描述符,分别是:标准输入s...[详细]
-
请问我用的unodir32ESP32开发板,下载了ESP32舵机库放在了li'braries文件夹里,在ide烧录的时候说servo库与我运行的esp32开发板不兼容是怎么回事...[详细]
-
一、项目概述1.1引言在我们现在的日常生活中,计算机已经很普及了,在很多家庭里电脑已经像电视机一样成为了一项必备的电器设备,但是要想操作电脑,即使是只做一些短暂的处理,也得坐到电脑前才能完成,有时很不方便,这就使得远程操作电脑成为了一个很重要的技术。同时随着智能终端设备的广泛普及,智能设备的性能随着技术的提高越来越好,现在已经完全具有完成远程操作电脑的能力。所以,基于智能设备的远程控...[详细]
-
刚开始学习单片机的时候一般都会买学习板,但是到后来觉得板子用的不太方便,于是我就想着自己做一个最小系统板。首先我们需要知道单片机最小电路里都有什么,单片机最小电路主要有三块:电源,晶振和复位,当然现在有比较高级的单片机里面集成了这些东西,暂且不谈。需要准备的器材有:电烙铁,焊锡丝,镊子,材料有:洞洞板(5x7或者6x8)一块,单片机底座一个,12M直插式无源晶振,10uf电解电容一个,20pf瓷...[详细]
-
12.1关于按键前面控制LED灯是让GPIO输出高低电平,而获取按键则是读取GPIO电平,从而获知用户是否按下按键。按键监测一般有两种:按键扫描和按键中断。按键扫描是间隔很短时间反复查询GPIO状态,从而得知是否有按键动作,这种方式代码简单,但比较耗资源。按键中断而是通过按键产生中断信号,从而实现按键的检测,这种方式需要使用到中断机制,需要对MCU了解深入一点,效果是最好的。本节先介绍按...[详细]
-
输入捕获是处理器捕获外部输入信号的功能,基于定时器抓取输入信号指定触发方式之间的长度。具体有下面三种触发情况:1、上升沿触发2、下降沿触发3、上下都触发当触发条件发生后,捕获比较寄存器锁定当前的计数值,如果开启了中断或者DMA,就可以通过中断或DMA及时获得数据进行处理。有时可能遇到上一次触发的标志还没清除,下次触发就发生了,此时会将over-capture标志置位,对...[详细]
-
买个电调一切ok~,哈哈开玩笑整个文章分为三部分1.大概原理2.硬件部分3.程序部分大概原理动图永磁同步电机转动过程如图所示,就是通过切换不同方向的定子在不同时刻的磁极方向和磁场强度来拉动转子旋转。驱动方式其中驱动方式有两大派系一是连续出招讲究一套接化发(FOCPMSMIdq正弦波马鞍波矢量连续转矩控制这个比较复杂不适合萌新快速...[详细]
-
今天给大家介绍STM32串口接受不定长数据中断检测的相关问题。能够推测,在UART收到最后一帧数据后,假如随后的一个数据帧的时长内未收到新的数据,则IDLE信号有效.假如数据包之间间隔大于一个数据帧,就能够用IDLE信号作为检测数据包完毕的标志.运用DMA接管UART-Rx数据,当检测到DMA数据满,或DMA数据半满,或UART的IDLE时,读取DMA数据.假如DMA缓存空间足够大(大于最大的...[详细]
-
本文章为《STM32MP157Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。stm32mp157是ARM双核,2个A7核,1个M4核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统,STM32MP157开发板所以既可以学嵌入式linux,也可以学stm32单片机。针对F...[详细]
-
1.显示部分移植准备将KEIL_LVGLSimulatorLVGL.Simulatorlvgl文件夹下面的lv_conf_template.h、lvgl.h复制到KEIL_LVGLUSERLVGL文件夹下面,并将lv_conf_template.h改名为lv_conf.h并在LVGL文件夹下面新建Porting文件夹将KEIL_LVGLSimulatorLVGL.Simulatorlvg...[详细]
-
前言本文主要讲解STM32H7系列的CACHE是如何使用的,以及能给程序带来怎样的提升,还有过程中遇到的问题以及解决方法。一、启用CACHE启用cache很简单,就是这两句,分别打开I-Cache和D-Cache,但是如果只使用这两句,再操作DMA和FLASH时就很有可能遇到问题,后面会具体说明。SCB_EnableICache();//使能I-CacheSCB_EnableDCa...[详细]
-
GPIO(GeneralPurposeInputOutput)是通用输入/输出端口;每个GPIO端口可通过软件分别配置成输入或输出;输出又分为推挽式(Push-Pull)和开漏式(Open-Drain)。USART(UniversalSynchronous/AsynchronousReceiver/Transmitter)是通用同步/异步串行接收/发送器,支持全双工操作;可设置波特率...[详细]