-
NOTE:以下内容只针对ARMv8。问题一:ARMv8branch指令格式及用法(《ARMv8ISAoverview》中page25有相关叙述):1、无条件分支+立即数:直接跳转到某地址,不能跳转到寄存器指令有两个:”blabel””bllabel”。在编译过程,编译器会将label翻译成立即数。举例:编写汇编代码如下main:label:...[详细]
-
电动汽车是指全部或部分由电机驱动的汽车。目前主要有纯电动汽车、混合电动车和燃料电池汽车3种类型。电动汽车目前常用的动力来自于铅酸电池、锂电池、镍氢电池等。 锂电池具有高电池单体电压、高比能量和高能量密度,是当前比能量最高的电池。但正是因为锂电池的能量密度比较高,当发生误用或滥用时,将会引起安全事故。而电池管理系统能够解决这一问题。当电池处在充电过压或者是放电欠压的情况下,管理系统能够自...[详细]
-
当我们使用8位MCU编程,用到求平方根算法时,如果调用自带的子程序,那么生产的代码较多,效率低下。因为软件自带算法是用浮点数类型来计算的,现实中我们往往只需要返回整型数据,采用以下代码求平方根将会大大提高计算效率。staticunsignedlongsqrt(unsignedlongx){registerunsignedlongxr;//resultregiste...[详细]
-
HAL库下,利用STM32CubeMX生成源代码,确实比较简单,比用标准库简单很多。现在总结自己学习的过程:硬件平台:正点原子探索者(STM32F407ZET6)1、配置STM32CubeMX(1)打开STM32CubeMX,选择相应的芯片型号,并配置调试信息为:SerialWire(2)配置RCC主频,选择外部高速晶振(HSE):Crystal/Ceram...[详细]
-
jz2440开发板在介绍bootloader里边的内容的时候,需要知道的是:bootloader的引入的目的就是启动linux内核,一个简单的bootloader编写需要以下的步骤:①初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NANDFLASH②把内核从NANDFLASH独到SDRAM③保存要传给内核的参数到指定的位置④跳转执行内核有的时候,会遇到bootloa...[详细]
-
有了单片机学习板之后你就要多练习,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自...[详细]
-
今天在调试程序的时候,发现函数返回值赋值给变量时,变量值总是显示notinscope,无法看到变量被赋的值。出现这种情况的原因是这个局部变量没被分配到内存,或者变量被编译器优化了。编译器优化级别高的时候,编译器为了优化,可能并没有按照我们想要执行的代码汇编。解决方法:降低Keil的编译优化选项,如下图所示,优化等级改为0(默认为3)。...[详细]
-
Ⅰ、写在前面前面文章讲述过关于SPI的驱动(硬件SPI和软件模拟SPI),本文接着那篇文章来讲述关于SPI应用中【FLASH时序描述及驱动编程】。写这篇文章的目的有两点:1.让大家知道SPI在实际应用开发中的重要意义;2.让大家掌握SPIFLASH存储芯片的时序及驱动编程。市面上的SPIFLASH类型很多,但是绝大部的芯片在硬件和软件上都是兼容的。虽然本文是以华邦的W25...[详细]
-
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统的核心采用的是STC89C52单片机;数据显示模块采用的是LCD液晶显示;温度采集模块用的是DS18B20温度传感器,该传感器所采用的是单总线传输,内部带有A/D转换,用起来非常方便;时间处理模块用的是DS1302时钟芯片,可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能;调整设置模块共包括...[详细]
-
概述只要是讲解以下两个问题点1)添加printf打印输出2)添加自定义的文件夹一、添加printf打印输出1、在使用STM32Cubde生成好代码中usart.c中添加,如下的代码即可:/*USERCODEBEGIN0*/#includestdio.h#ifdef__GNUC__#definePUTCHAR_PROTOTYP...[详细]
-
1引言Linux嵌入式系统,具有高性能、低功耗、体积小、可靠性高、源代码开放等优点,逐渐被越来越多的人认可并使用,原先只有在PC机上实现的功能,如今也被移植到了更加方便的嵌入式系统上。近些年嵌入式系统已经应用十分广泛,而随着网络特别是无线网络的兴起和发展,将更加快捷方便的无线网络与嵌入式系统相结合更成为了当前研究的热点。CDMA(码分多址)无线网络具有覆盖面广、速度稳定、效率高、成本低等优点...[详细]
-
简介:脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。STM32的定时器除了TIM6和7。其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生多达7路的PWM输出。而通用定时器也能同时...[详细]
-
以下是程序,软件用的IAR:#includeio430.h#includedandao_duocai.h#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))#definedelay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))#defi...[详细]
-
网络上有很多实现DHT11的程序,单大多都是89c52的。而有关stc12c5a60s2的很少。本人是新手一枚,在写关于stc12串口接收dht11数据时,发现接收到的都是0。这是为什么呢?在网上查了一堆资料后,明白是时序的原因。stc12系列的处理速度比89c52的速度快,且我们写的延时函数所延时的时间与参数不成正比。需要示波器。硬件:芯片:stc12c5a60s2晶振...[详细]
-
使用接收中断,将接收到的字符再发送出去。每次接收到字符之后都会退出低功耗模式,从而在主函数中将接收到的字符再发送出去。/***********************************************程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去***********************************************/...[详细]