-
1.内存映射MCU将资源映射到一段固定的4GB可寻址内存上,如下图所示。内存映射将内存分为几块区域,每一块区域都有一个定义的内存类型,一些区域还有一些附加的内存类型。内存类型有以下几种:Normal处理器可以为了性能而对访问该区域的任务进行重排序。Device处理器保证访问该内存的任务与其他访问Device或者Stronly-ordered内存的任务相对顺序不变。Str...[详细]
-
在使用串口接受字符串时,可以使用空闲中断(IDLEIE置1,即可使能空闲中断),这样在接收完一个字符串,进入空闲状态时(IDLE置1)便会激发一个空闲中断。在中断处理函数,我们可以解析这个字符串。需要注意的是,IDLE标志位需要软件清零,否则由于会不断进入中断,而使正常程序无法运行。当再次收到数据时(即RXNE再次置1),等到空闲便会重新进入中断。在STM32F4中,IDLE标志位清零的...[详细]
-
尝试了下STM32的ADC采样,并利用DMA实现采样数据的直接搬运存储,这样就不用CPU去参与操作了。找了不少例子参考,ADC和DMA的设置了解了个大概,并直接利用开发板来做一些实验来验证相关的操作,保证自己对各部分设置的理解。我这里用了3路的ADC通道,1路外部变阻器输入,另外两路是内部的温度采样和Vrefint,这样就能组成连续的采样,来测试多通道ADC自动扫描了,ADC分规则转换和注入...[详细]
-
一、独立看门狗 STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。 在键值寄...[详细]
-
通过实验发现,定时器的一个通道控制一个pwm信号。 在正式开始之前也可以参考这个视频学习资料 (stm32直流电机驱动) http://www.makeru.com.cn/live/1392_1218.html?s=45051 超声波雷达测距仪 http://www.makeru.com.cn/live/15971_2626.html?s=45051 PWM驱动电机不...[详细]
-
在了解重定向之前,我们先来看看linux的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit–n定义数字有关系,不能超过最大值。linux启动后,会默认打开3个文件描述符,分别是:标准输入s...[详细]
-
VSCode的强大不用多说了,直接上教程:一.到官网下载安装VSCode二.安装完成后,打开VSCode,安装PlatformIOIDE插件三.安装完重启VSCode,VSCode会继续安装PlatformIOIDE的依赖项,如果提示一直在安装,可以尝试用VPN瞧瞧,是不是被墙了不知道,我用VPN很快环境就安装好了四.新建工程STM32F103C8为例,使用...[详细]
-
1、STM32启动规则STM32根据boot0和boot1的电平决定启动位置,boot0=0时从主Flash启动,即0x08000000地址启动。按照spec,M3核的中断向量表是不变的(中断向量表每一项为4个字节),中断向量表的顺序:栈顶、复位向量、中断向量.....。所以复位时0x00000000(映射在0x08000000)的值为栈顶指针,0x00000004(映射在0x0800000...[详细]
-
问题描述:最近在学STM32的HAL库,据说可以统一STM32江湖,前途无量。最近一段时间参照STM32CubeMX和原子的资料自己学着建了两个HAL库的工程模板,F4的还好说,F1的出现了一个玄学问题:芯片为STM32F103C8T6,下进HAL库编写的工程后J-Link就识别不到芯片了,下载也是,只有J-Link读取时按住复位才可以。更神奇的是用标准库的代码却没问题,具体表象就是下进标准库...[详细]
-
通用定时器(以下以通用定时器3,通道3为例):第一步:开启时钟使能RCC-》APB1ENR:1位//开启定时器3时钟使能第二步:设置定时器分频与装载计数值(以一周期1ms)TIM3-》PSC=7199;//系统时钟为72M经(7199+1)分频后,定时器时钟为10k(一周期为0.1ms)TIM3-》ARR=9;//计数周期为0.1ms*(9+1)...[详细]
-
今天讲解“STM32F103SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOS、RTOS等。不管M3芯片属于哪一家公司,它都标配有SysTick这一部分。因此,它属于芯片内核的一部分,主要是为了方便操作系统的移植。其实,SysTick能实现的功能,都可以由TIM来实现。SysTick无非...[详细]
-
DSP是为运算而生的芯片,他最强大的地方就在与它的数**算性能,那是由它的指令集支持的。那些拿DSP和STM32比较的,省省吧,如果你两者都熟悉你就知道根本没啥好比的,如果我需要很多高级的接口,比如以太网和USB,那么我自然选STM32,如果我需要实现一些算法,那肯定会选DSP。如果你对运算速度不敏感,反正72M的速度已经比原先单片机快很多了,那当然是看你熟悉哪个,哪个价格比较好,支持比较...[详细]
-
使用有源蜂鸣器,只能发出固定的”滴滴“声,当然不能满足于此呀。使用无源蜂鸣器,只要输出不同频率的PWM波,即可发出不同的音符。不同的音符组合起来就是一个曲子了。1乐谱简析1.1音阶音阶是音乐必不可少的要素,主要由声音的频率决定。通过给蜂鸣器不同频率的音频脉冲,可以产生不同的音阶,而要产生某频率的音频脉冲,最简单的办法是算出该音频的周期,然后将此周期除以2即为半周期的时间。通过程序控...[详细]
-
在直流减速电机控制中,最常用的方法就是通过PWM来控制直流电机的转速。在控制小车走直线的过程中,需要两者的转速一置(如果要走得很直,还需要在短时间内保证两者的行程大致相当,这可以用PID算法来控制)。因此,在检测到两者转速不一样时,需要动态调整其中一个或两个轮子的PWM的点空比(简单点的就以一个轮为基准,调整另外一个轮子即可;如果以一个固定的标准的话,需要调整两个轮子的PWM占空比)。1...[详细]
-
摘要:为什么可以在STM32上面跑神经网络?简而言之就是使用STM32CubeMX中的X-Cube-AI扩展包将当前比较热门的AI框架进行C代码的转化,以支持在嵌入式设备上使用,目前使用X-Cube-AI需要在STM32CubeMX版本5.0以上,支持转化的模型有Keras、TFlite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型转化为一堆数组,而后将这些数组...[详细]