技术
<strong>一、MM32 BKP简介及功能描述</strong>
在使用MCU的过程中,当系统在待机模式下被唤醒,或者系统复位或电源复位时,会导致我们在RAM中的一些重要数据丢失,此时该怎么处理呢?MM32为我们提供了备份寄存器(BKP), 备份寄存器是 10 个 16 位的寄存器,可用来存储 20 个字节的用户应用程序数据。他们处在备份域里,当 1.5V 电源被切断,他们仍然由 VDD维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。
复位后,对备份寄存器的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。通过设置寄存器 RCC_APB1ENR 的 PWREN 位来打开电源和后备接口的时钟,可以用半字(16 位)或字(32 位)的方式操作这些外设寄存器。
<strong>1.什么是串行通信?</strong>
串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。
<strong>1、采用短变量</strong>
一个提高代码效率的最基本的方式就是减小变量的长度。使用 C 编程时,我们都习惯于对循环控制变量使用 int 类型,这对 8 位的单片机来说是一种极大的浪费,你应该仔细考虑你所声明的变量值可能的范围,然后选择合适的变量类型,很明显,经常使用的变量应该是unsigned char,只占用一个字节。
<strong>2、使用无符号类型</strong>
为什么要使用无符号类型呢?原因是8051不支持符号运算,程序中也不要使用含有带符号变量的外部代码,除了根据变量长度来选择变量类型外,你还要考虑是否变量是否会用于负数的场合。如果你的程序中可以不需要负数那么把变量都定义成无符号类型的。
I2C和SPI是两种不同的通信协议。
听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已,我们只要遵照这个标准去做事,就可以。比如公司规定早上9点上班,我们就9点上班,不然就会扣薪水,这就是个协议。
用I2C通信的芯片最常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同样,还有其他功能的一些芯片。
I2C通信需要用到两个引脚:SDA SCL。SCL是时钟引脚,SDA是数据引脚。
在uCOS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍uCOS—II下编写中断服务程序以及外设驱动程序的一般思路。
<strong>1、uCOS-II的中断处理及51系列单片机中断系统分析</strong>
uCOS-II中断服务程序(ISR)一般用汇编语言编写。以下是中断服务程序的步骤。
保存全部CPU寄存器;调用OSIntEnter()或OSIntNesting(全局变量)直接加1; 执行用户代码做中断服务; 调用OSIntExit(); 恢复所有CPU寄存器; 执行中断返回指令。
<strong>一、CMSIS标准</strong>
ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU。该内核是ARM公司设计的一种处理器体系架构。内核与外设的关系就像PC上的CPU与硬盘、主板、内存等的关系一样。
“Siri,开灯”,一个简单的口令实现所有居家设备的控制曾经是建立智能家居的梦想。随着iOS与AndroidTM两大移动设备阵营的普及,配合开发的智能外设也越来越多。从单纯充电到高级数字音乐播放器,甚至集成电器或灯光的数字信号控制器,移动设备不再只有接拨电话或简单的邮件或聊天功能,而成为了生活中不可或缺的帮手。通过无线及云端处理(图1及图2)再受限于使用环境,更多远程遥控应用需求可以连成图3。
在最近一个项目中,急急忙忙把功能完成就给了客户,完全没有安全意识,现在用烧录器把Flash里的程序一读,我就慌了,完全没有加密,随随便便就把程序读出来了,那我干了一个月的活,被人家花几秒钟读出来了,我这不是白干吗。因此,在这里普及一下安全意思,顺便介绍几种常见的加密方法。
<strong>一、打磨或更改芯片型号丝印</strong>
打磨或更改芯片型号丝印可以迷惑破解者,使破解者不知从何入手。当然,这是需要成本的,根据产品价格考虑是否需要打磨。
<strong>二、使用加密芯片</strong>
使用加密芯片的成本更加高,同时对于加密芯片可靠度无法掌握,风险很大。
<strong>三、开启单片机Flash保护</strong>
<strong>1、EEPROM介绍</strong>
Electrically Erasable Programmable Read Only Memory 电气可拭除可编程只读存储器
发展过程:ROM – > PROM –> EPROM –> EEPROM
<strong>2、EEPROM和FLASH的区别</strong>
2.1 使用上的区别
<strong>一、基础概念</strong>
什么是IAP?IAP即在应用中编程(In-Application Programming IAP),简单的说就像是一个用户自定义的升级程序。实际上,STM32单片机的程序烧写有多种方法,可以用JTAG,也可用串口通过ISP软件烧写新程序。
JTAG的方式需要专用的烧写工具,在产品布置到现场后,更新产品程序比较麻烦,而通过串口的ISP软件升级方法可以直接使用常见的串口线升级程序,十分方便,这种方法用的是ISP。ISP可以说是单片机默认的bootloader,
<font color="#FD8900">作者: Maurizio Gavardoni Microchip Technology Inc</font>
<font color="#33b1c8"><strong>摘要</strong></font>
MEMS 振荡器已得到了非常广泛的使用,并在很多应用中稳步取代晶体振荡器。MEMS 振荡器与晶体振荡器相比具有诸多显著的优势,例如提高了可靠性和对机械应力的抗力,以及在宽温度范围内保持平稳的性能。MEMS振荡器还具备一定的灵活性,可通过编程和配置生成多个输出时钟。
嵌入式Linux系统移植主要由四大部分组成:
• 搭建交叉开发环境;
• bootloader的选择和移植;
• kernel的配置、编译、和移植;
• 根文件系统的制作;
<font size="3"><strong>第一部分:搭建交叉开发环境</strong></font>
先介绍第一分部的内容:搭建交叉开发环境,首先必须得思考两个问题,什么是交叉环境? 为什么需要搭建交叉环境?
STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输出。DAC 可以通过引脚输入参考电压 VREF+以获得更精确的转换结果。
STM32 的 DAC 模块主要特点有:
① 2 个 DAC 转换器:每个转换器对应 1 个输出通道
② 8 位或者 12 位单调输出
③ 12 位模式下数据左对齐或者右对齐
④ 同步更新功能
⑤ 噪声波形生成
所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。
在设计引脚中断程序时,有三个需要特别注意的地方。
一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。
二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。
三是,一般都利用PIC单片机的引脚功能来检测按键,所以必须处理好按键消抖的问題。
<font size="3" color="blue">一、MM32嵌套向量中断控制器</font>
本文针对MM32F0/L0/W0系列MCU产品。
<strong>特征</strong>
○ 中断都可屏蔽(除了 NMI)
○ 16 个可编程的优先等级(使用了 4 位中断优先级)
○ 低延迟的异常和中断处理
○ 电源管理控制
○ 系统控制寄存器的实现
电源是电子系统的心脏,工业应用中,为系统前级或接口供电的电源一般都要求有高的抗干扰性能,各种隔离型的模块电源模块应运而生。你或许知道隔离电源的设计方案,但你真的能够设计出一款稳定的电源吗?本文为你揭秘。
<strong>一、电源模块为何需要隔离</strong>
1、保护人员避免受到物理和电气伤害
<strong>1、引言</strong>
USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列单片机ATmega8设计一种通用的USB接口模块。该模块可方便为各种嵌入式微处理器增加USB接口,从而实现与USB主机系统的高速通信。
<strong>2、系统硬件设计</strong>
<font size="3"><strong>简介</strong></font>
数十年来,振荡器和时钟始终依靠石英晶体来产生稳定的参考频率。晶体在许多应用中表现出十分优异的性能。但十年前,使用MEMS谐振器代替石英晶振的微机电系统(Microelectromechanical System,MEMS)技术进入了市场,并迅速受到广泛的关注。
基于MEMS的时序器件兼具高可靠性、扩展工作温度、小体积和低功耗特性。
在2015年,Microchip通过收购Micrel获得了MEMS时序技术,而Micrel在此之前已收购Discera。Discera在2008年交付了第一批振荡器成品,迄今为止已制造并销售了近1亿个器件。
1、555定时器原理分析
555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为 0,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1 的输出为 0,C2 的输出为 1,可将 RS 触发器置 0,使输出为低电平。
1.寄存器
CM3拥有R0~R15通用寄存器和一些特殊功能寄存器
R0~R12这些通用寄存器,复位初始值都是不可预料的
2.CM3有R0到R15的通用寄存器组
<center><img width="600" src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011268-39800-1.jpg&q…; alt="Cortex-M3寄存器等基础知识"></center>