推荐阅读最新更新时间:2024-03-16 16:13
STM32 GPIO管脚模式的设置及使用方法
一、 在STM32中选用IO模式 1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2、带上拉输入GPIO_IPU——IO内部上拉电阻输入 3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入 4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电 5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。 当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。 可以读IO输入电平变化,实现C51的IO双向功
[单片机]
ATmega168 基准电压使能信号和启动时间
ATmega168具有片内能隙基准源,用于掉电检测,或者是作为模拟比较器或ADC的输入。 电压基准的启动时间可能影响其工作方式。启动时间列于Table 23。为了降低功耗,可以控制基准源仅在如下情况打开: 1. BOD 使能 ( 熔丝位BODLEVEL 被编程) 2. 能隙基准源连接到模拟比较器(ACSR 寄存器的ACBG 置位) 3. ADC 使能 因此,当 BOD 被禁止时,置位 ACBG 或使能ADC后要等待基准源启动之后才能使用这些功能。为了降低掉电模式的功耗,在进入掉电模式之前用户可以禁止上述三种条件以关 闭基准源。
[单片机]
ATmega168 Standby模式
Standby 模式 当 SM2..0 为 110 ,且选择了外部晶体振荡器或陶瓷谐振器作为时钟源, SLEEP 指令使MCU进入Standby模式。这一模式与掉电模式唯一的不同之处在于振荡器继续工作。其唤醒时间只需要 6 个时钟周期。 Table 19. 在不同睡眠模式下活动的时钟以及唤醒 MCU 的来源。
[单片机]
ATmega168 外部复位
外部复位由外加于 RESET 引脚的低电平产生。当复位低电平持续时间大于最小脉冲宽度时 ( 参见 Table20) 即触发复位过程,即使此时并没有时钟信号在运行。当外加信号达到复位门限电压 VRST(上升沿)时,tTOUT 延时周期启动。延时结束后 MCU 即启动。外部复 位可由 RSTDISBL 熔丝位禁用,请参见ATmega168 PDF的P256Table120 。
[单片机]
ATmega16熔丝位设定
特别注意,要使用外部晶体,必须设置熔丝,否则芯片会使用默认的内部晶体。 1、M16的出厂设置 内部RC 振荡1MHz 6 CK + 65 ms CKSEL=0001 SUT=10 JTAGEN=1 默认状况下JTAG已编程(即PC2-PC5 为高电平不可以被拉低) ,如果PC2- PC5要用作普通IO口,需要取消JTAG编程,或者在程序开始时执行以下命令: MCUCSR |= 1 JTD; MCUCSR |= 1 JTD; //注意要连续操作两次。恢复JTAG功能也要连续两次操作。 2、熔丝位配置说明 2.1低位(时钟及启动时间设置) 2.1.1、 BOD(Brown-out
[单片机]
ATmega168 指令执行时序
这一节介绍ATmega168指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。 Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。 Figure 7 演示的是ATmega168寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
[单片机]
STM32 中JTAG 引脚作为普通IO口设置方法
第一次画STM32 的PCB ,因为采用了SWD 调试,认为JTAG的引脚PB3,PB4,没有用到就做了普通IO口,麻烦从此引起了。 设置PB3,PB4均为输出口,且输出高电平,用万用表测量,PB4为高,PB3不是高电平,在看MDK 中的寄存器值,PB3,PB4都是高啊?寄存器的值怎么和实际的值不一样了? 唉,都让我怀疑是不是引脚接错了,反复测量后发现引脚确实是对的,但为什么PB3能输出高,而PB4不可呢? 不知道,问度娘,后来在一个帖子上发现了相关回复: 首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些 端口设置为
[单片机]
ATmega168 ALU
ALU (Arithmetic Logic Unit)- 算术逻辑单元。 ATmega168 的 ALU 跟其他 AVR ALU 一样都是与32 个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间的ALU 运算只需要一个时钟周期。ALU 操作分为3 类:算术、逻辑和位操作。此外还提供了支持无/ 有符号数和分数乘法的乘法器。具体请参见指令集。
[单片机]