-
1.内存映射MCU将资源映射到一段固定的4GB可寻址内存上,如下图所示。内存映射将内存分为几块区域,每一块区域都有一个定义的内存类型,一些区域还有一些附加的内存类型。内存类型有以下几种:Normal处理器可以为了性能而对访问该区域的任务进行重排序。Device处理器保证访问该内存的任务与其他访问Device或者Stronly-ordered内存的任务相对顺序不变。Str...[详细]
-
1.几个名词ABI:可执行文件必须遵守的规范,以在特定执行环境中运行;单独产生的可重定址的文件必须遵守的规范,以用来链接和执行。EABI:适用于嵌入式环境的ABIPCS:程序调用规范(ProcedureCallStandard)AAPCS:PCSforARMArchitectureAAPCS定义了单独编译、单独汇编的程序是如何一起工作的。Ro...[详细]
-
1Introduction
Inthemid-1960s,AmericanscientistMaasconductedextensiveexperimentalresearchonthechargingprocessofopen-cellbatteriesandproposedanacceptablechargingcurvefor...[详细]
-
STM32的电源控制STM32的电源框图STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。下面是STM32的电源框图:注意:框图中的VDDA和VSSA必须分别联到VDD和VSS。独立的A/D转换器供电和参考电压为了提高转换的精确度,ADC使用一个独立的...[详细]
-
VSCode的强大不用多说了,直接上教程:一.到官网下载安装VSCode二.安装完成后,打开VSCode,安装PlatformIOIDE插件三.安装完重启VSCode,VSCode会继续安装PlatformIOIDE的依赖项,如果提示一直在安装,可以尝试用VPN瞧瞧,是不是被墙了不知道,我用VPN很快环境就安装好了四.新建工程STM32F103C8为例,使用...[详细]
-
Keil5更新之后,开始支持ARMV6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32开发下,使用V6版本的编译器进行STM32的C++开发作一个记录,方便和大家交流和参考。至于说为什么STM32要C++开发,这个没有解释,只是个人觉得C++比C有更多的方便,使得编程更加的容易,C++有更多的生态.... 开始上教程:...[详细]
-
C++属于面向对象的编程语言,OOP的思想不必多说,特别对于复杂的软件工程来说,利用OOP绝对是事半功倍,相对于传统的C来说;当然用C来写单片机程序无可厚非,已经延续了一个传统,从大学时学的开始到工作岗位,好多人都是一直用C来做,但是既然Keil支持C++编译,可以用C++来编写你的代码,可以利用高级语言来结构化,清晰化你的程序,为嘛不用呢!哈哈,个人看法!下面进入正题:C+...[详细]
-
1、STM32能下载ELF格式的文件吗?答:可以。因为所谓的bin文件就是ELF文件的.text代码段和.data数据段。当然前提是下载工具能识别ELF文件格式,STM32下载ELF文件并不意味着STM32可以把ELFdownload到Flash上,而是下载工具能从ELF提取到bin文件,下载时通信链路上传输的也只有要bin文件。例如有elf文件:123456789...[详细]
-
cortex-m3支持256个中端,其中包含了16个内核中断,240个外部中断。STM32只有84个中断,包括16个内核中断和68个可屏蔽中断。stm32f103上只有60个中断,f107上才有68个中断。中断是STM32很基础的一个功能,学会使用中断,才可以更好的使用其他的外设。理解STM32的中断,必须要先从STM32的中断优先级分组是怎么回事。要理解优先级分组,就要先理解什么是先占优...[详细]
-
/项目名称:4只按键控制LED状态显示//项目再创作者:科技小宅神//完成时间:2021/01/21proteus仿真图#includereg52.h#defineucharunsignedchar#defineuintunsignedint//按键和LED的引脚定义sbitLED1=P0^0;sbitLED2=P0^1;sbitLED3...[详细]
-
使用stm32CubeIDE优化等级的坑是踩了又踩,建议就是优化等级最低。牺牲点大小与速度可以避免很多奇奇怪怪的问题。优化等级可能出现的问题:问题1:打断点调试时该行被优化无法暂停直接跳过。(这个算正常没有逻辑错误)问题2:true为大于0真值if(true){语句一;}else{语句二;}程序运行到if处,语句一、二都不执行。问题3:true为大于0真值if(...[详细]
-
工作环境:STM32CubeMXv6Keil5串口调试助手单单的串口发送相对而言还是比较简单,因为不用打开配置串口中断相关的配置。首先打开左侧的下拉框Connectivity,点击USART1选项;在打开的选单中点击Mode的下拉框,选中Asynchronous;在下方的配置框中选中ParameterSettings进行配置:BaudRate:波特...[详细]
-
网上关于DAC8560相关的模拟SPI驱动的资料少的可怜,甚至连DAC8560的中文资料都不多,更不要提用HAL库进行编程的了,这实在是一块冷门芯片,本文主要是介绍讲解STM32HAL库使用模拟SPI驱动DAC8560。首先是SPI相关的简介:SPI通信高冠避役·800阅读然后是用STM32CubeMx初始化模拟SPI的引脚:STM32CubeMx的GPIO输出的配置可...[详细]
-
相关信息芯片:STM32F103C6开发环境:Keil5仿真环境:Proteus8.9仿真视频https://www.bilibili.com/video/BV1qK4y1h7EM/Proteus仿真图源代码main.c#includestm32f10x.h#include"led.h"intmain(){ led_init(...[详细]
-
1、用cubemx生成基础工程,游戏控制器一般就是按钮和旋钮的组合,按钮就是gpio,旋钮是adc。具体配置就不罗嗦了。connectivity这里打开usb,勾选Device,参数保持默认即可。MiddlewareandSoftwarePacks这里选择USB_DEVICE,Mode这里选择CustomHID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也...[详细]