-
1.内存映射MCU将资源映射到一段固定的4GB可寻址内存上,如下图所示。内存映射将内存分为几块区域,每一块区域都有一个定义的内存类型,一些区域还有一些附加的内存类型。内存类型有以下几种:Normal处理器可以为了性能而对访问该区域的任务进行重排序。Device处理器保证访问该内存的任务与其他访问Device或者Stronly-ordered内存的任务相对顺序不变。Str...[详细]
-
在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。 b)初始化函数定义: voidUSART_Configuration(void);//定义串口初始化函数 c)初始化函数调用: voidUART_Configuration(void);//串口初始化函数调用 初始化代...[详细]
-
stm32的产品都有内置Flash,而且不同系列的产品其内置Flash的大小不尽相同,结构上也有差异,本文将对stm32f07x,stm32f10x,stm32f40x的内置Flash结构,以及如何进行读写操作做一个介绍。一、特性与构成1.stm32f07x系列2、stm32f10x系列 3、stm32f40x系列 ...[详细]
-
VSCode的强大不用多说了,直接上教程:一.到官网下载安装VSCode二.安装完成后,打开VSCode,安装PlatformIOIDE插件三.安装完重启VSCode,VSCode会继续安装PlatformIOIDE的依赖项,如果提示一直在安装,可以尝试用VPN瞧瞧,是不是被墙了不知道,我用VPN很快环境就安装好了四.新建工程STM32F103C8为例,使用...[详细]
-
Keil5更新之后,开始支持ARMV6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32开发下,使用V6版本的编译器进行STM32的C++开发作一个记录,方便和大家交流和参考。至于说为什么STM32要C++开发,这个没有解释,只是个人觉得C++比C有更多的方便,使得编程更加的容易,C++有更多的生态.... 开始上教程:...[详细]
-
MDK和交叉编译工具编译时都会指定程序的下载的地址(其实就是告诉程序它将在那个地址上开始执行),这有什么意义吗?其实这么设计有原因的,因为这里涉及到全局变量和全局函数指针的地址问题,假如当你在编译时指定编译器这段程序会在0x0c000000地址上运行,按缺省链接方式(即未使用自己的链接脚本或分散加载文件)全局变量和函数的地址分配就会从0x0c000000基地址上开始,此时如果你把这段程序烧...[详细]
-
STM32简介STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。ST——芯片制造商意法半导体,SOC厂商ARM——IP厂商,负责芯片内核设计的公司M——Microelectronics的缩写,指微控制器32——指它是一个32位的微控制器注意:51单片机是5V工作电压,而STM32是3.3V工作电压。STM32芯片结构,如下图所示。...[详细]
-
Q:什么是SYSTick定时器?SysTick是一个24位的倒计数定时器,当计到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。Q:为什么要设置SysTick定时器?(1)产生操作系统的时钟节拍SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一...[详细]
-
Why?Rust作为一门新兴语言,其安全、可靠、运行效率高等特点让它成为一门非常适合嵌入式开发的语言。本文主要介绍如何搭建Rust嵌入式开发环境,然后使用stm32h7开发板点个灯。在嵌入式开发领域,C语言的地位是无法被撼动的(至少在2023年是这样)。用Rust开发嵌入式目前就两个目的:玩战未来:)适用对象如果你没有接触过嵌入式编程,或者完全不懂gcc系列的开源工...[详细]
-
【STM32可以做什么?】STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域。【用寄存器还是库函数?】STM32有两种编程方式,一种是用寄存器的方式,另一种是库函数的方式。对于初学者而言,可能后者较容易上手。学从难处学,用从易处用。学习阶段,能学多深就尽量学多深,这样基础会打得比较牢。不只是为了学STM32而学STM32,我们的目标是:学完STM3...[详细]
-
源代码:#includereg52.hunsignedcharRunMode;voidDelay1ms(unsignedintcount){ unsignedinti,j; for(i=0;icount;i++) for(j=0;j120;j++);}unsignedcharcodeLEDDisplayCode={0xC0,0xF9,0...[详细]
-
stm32用hal库建立工程通用且方便,用的人也越来越多了,正点原子之前也有hal库的书还有例程,但是正点原子hal库的例程是以调用hal库的形式制作的,没有直接从cube的建立工程开始做起,并且在使用的过程中有根据项目更改过库函数。网上STM32Cube的教程也大多是v4、v5版本,和v6相比很多界面和功能有所变化,所以写了这个。文中部分内容参考正点原子开发指南和网上的文章教程。工作环境...[详细]
-
功能简介:1.基于C51单片机作为控制器2.LCD1602作为系统的显示器3.NB通信模块采用SIM7020C4.HC-SR04超声波模块实现水箱水位的检测5.利用继电器可控制水阀的关断与闭合6.电源采用dc002直接输入5V供电PCB:代码:#includemain.h/*******************变量定义*********************/...[详细]
-
工作环境:STM32CubeMXv6Keil5串口调试助手单单的串口发送相对而言还是比较简单,因为不用打开配置串口中断相关的配置。首先打开左侧的下拉框Connectivity,点击USART1选项;在打开的选单中点击Mode的下拉框,选中Asynchronous;在下方的配置框中选中ParameterSettings进行配置:BaudRate:波特...[详细]
-
网上关于DAC8560相关的模拟SPI驱动的资料少的可怜,甚至连DAC8560的中文资料都不多,更不要提用HAL库进行编程的了,这实在是一块冷门芯片,本文主要是介绍讲解STM32HAL库使用模拟SPI驱动DAC8560。首先是SPI相关的简介:SPI通信高冠避役·800阅读然后是用STM32CubeMx初始化模拟SPI的引脚:STM32CubeMx的GPIO输出的配置可...[详细]