博客

ARM汇编指令(7)——数据交换指令

judy 发表于:周五, 04/13/2018 - 15:46 , 关键词:
1、SWP指令 SWP指令的格式为: SWP{条件} 目的寄存器,源寄存器1,[源寄存器2] SWP指令用于将源寄存器2所指向的存储器中的字数据传送到目的寄存器中,同时将源寄存器1中的字数据传送到源寄存器2所指向的存储器中。显然,当源寄存 器1和目的寄存器为同一个寄存器时,指令交换该寄存器和存储器的内容。 指令示例: SWP R0,R1,[R2] ;... 阅读详情
441

STM32 CAN应用-过滤器设置

judy 发表于:周四, 04/12/2018 - 13:03 , 关键词:
在使用STM32的CAN控制器进行数据收发,当用到位屏蔽模式的时候,就要设置过滤器了,这个关系到是否能够接收到想要的数据。 下面针对几种不同情况对CAN过滤器(Filter)进行设置。 CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; //标示符屏蔽模式 CAN_FilterInitStructure.... 阅读详情
509

stm32关于BOOT0和BOOT1设置

judy 发表于:周三, 04/11/2018 - 10:35 , 关键词:
BOOT0和BOOT1 STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的 Flash。 2)SRAM = 芯片内置的 RAM区,就是内存啦。 3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段 Bootloader,就是通常说的 ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个 ROM区。 在每个... 阅读详情
559

ARM汇编指令(6)——批量数据加载/存储指令

judy 发表于:周二, 04/10/2018 - 09:56 , 关键词:
ARM微处理器所支持批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令 用于将一片连续的存储器中的数据传送到多个寄存器,批量数据存储指令则完成相反的操作。 常用的加载存储指令如下:LDM(或STM)指令 LDM(或STM)指令的格式为: LDM(或STM){条件}{类型} 基址寄存器{!},寄存器列表{∧} LDM(或STM)... 阅读详情
591

AVR开发 Arduino方法(二) 中断子系统

judy 发表于:周一, 04/09/2018 - 10:14 , 关键词:
在了解中断子系统之前,首先要了解中断的概念。你正在看书,这时电话响了,你会怎么做呢?相信大多数人会这样:先标记看到的位置,接完电话回来后继续阅读。这就是一个现实生活中中断的例子,我们把“电话响了”成为中断源。Arduino UNO R3的主处理器ATMega328P拥有26个中断源,如下表所示: 向量号 程序地址 中断源 中断定义 中断服务程序名称 1 0x0000... 阅读详情
530

单片机mcu内存分配详解

judy 发表于:周日, 04/08/2018 - 17:15 , 关键词:
谈到内存,我们都会想到PC,对于单片机或者arm来说也是存在内存的,简单的理解是:内存嘛……就是存放东西的地方,只不过这个东西是数据而已,好了,还是把重点放在mcu上面,对于一款mcu来说,在性能描述的时候都会告诉sram,flash的容量大小,对于初学者来说,也不会去考虑和理会这些东西,拿到东西就只用。其实不然,这些量都是十分重要的,仔细想想,代码为什么可以运行,代码量是多少,定义的int、... 阅读详情
538

STM32中定时器的时钟源

judy 发表于:周日, 04/08/2018 - 10:38 , 关键词:
STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。... 阅读详情
539

ARM汇编指令(5)——加载/存储指令

judy 发表于:周三, 04/04/2018 - 10:05 , 关键词:
ARM微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储 指令则完成相反的操作。 常用的加载存储指令如下: 1、LDR指令 LDR指令的格式为: LDR{条件} 目的寄存器,<存储器地址> LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。... 阅读详情
576

stm32的各种时钟FCLK、PCLK、HCLK

judy 发表于:周二, 04/03/2018 - 14:04 , 关键词:
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,... 阅读详情
618

如何正确配置AVR单片机的熔丝位?

judy 发表于:周二, 04/03/2018 - 09:42 , 关键词:
对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,... 阅读详情
475

页面