简介:1、中断系统中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序
一、导致异常的原因很多,例如:直接使用未分配空间的指针、栈溢出等一场非法操作便会使程序进入HardFault异常状态。下面介绍怎么找出程序中的异常。接下来在keil_MDK工程中,编译代码,并debug,之后全速运行,可以看到如下图所示程序进入HardFault异常。如下所示我们找到SP寄存器,0x200045B8即为栈地址,栈里面的值依次为R0~R3、R12、PC(Return address)
1.内部FLASH简介之前的文章中介绍过STM32F1利用SPI与外部FLASH(W25QXX芯片)通讯的例程,本例程将介绍STM32F1的内部FLASH,通过内部FLASH实现数据读写操作。不同型号的STM32,其FLASH容量也有所不同,最小的只有16K字节,最大的则达到了1024K字节。此处我们使用的是STM32F103ZET6,其FLASH容量为512K字节,属于大容量产品,大容量产品的闪
原创 2020-12-16 23:22:50
1746阅读
  在使用STM32单片机输出PWM波形的时候,通常可以直接使用定时器提供的PWM模式。可以通过自动重装载寄存器(TIMx_ARR)来设置定时器的输出频率,然后通过捕获/ 比较寄存器 1(TIMx_CCRx)来设置占空比。一个定时器只有一个自动重装载寄存器(TIMx_ARR),但是有4个通道的捕获/ 比较寄存器 1(TIMx_CCR1、TIMx_CCR2、TIMx_CCR3、TIMx_CCR4)。
系列文章目录` 文章目录系列文章目录一、计算六相MOS管输入波形二、电机模块搭建三、Clark变换与park变换四、PID电流与速度五、PID MATLAB仿真结果结束语 FOC MATLAB仿真文件链接: 基于MATLAB 2018a版本,低于这个版本的请谨慎下载,高于这个版本的可以兼容。一、计算六相MOS管输入波形在第七篇的时候在svpwm过程中计算出了三相的比较值,这个比较值最终是一个马鞍
ADC Analog-to-Digital 指模/数转换器或者模拟/数字转换器 是指将连续变量的模拟信号转换为离散的数字信号的器件典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。实验原理 STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时
STM32内部FLASH1. 内部FLASH简介2. 硬件设计3. 软件设计3.1 STM32CubeMX设置3.2 MDK-ARM编程4. 下载验证
原创 2022-01-04 11:41:10
1728阅读
首先,下载好需要用的2个软件,keil5和stm32 cubemx1、打开keil安装全家桶,安装keil,点击这里,参考第三个PPT—如何安装进行安装, 在安装后,下载需要用的数据,如下图,这个是根据自己的板的芯片所定的,我的是stm21F1,所以下载对应的即可,后续在keil5中建立文件夹需要用到 问可以根据野火视频,在keil官网中直接下载,下载后,把uv4托到kiel5
一. 为什么要用超低功耗在接触到嵌入式的时候,首先就是熟悉各个时钟线。每次拿到一个新的 STM32 板子都会用 CUBEMX 去把时钟配置到支持的最高频率,当然在最高频率下运行会得到最强的性能。最强的性能带来的也就是最高的功耗,在某些场景下,只能使用电池供电,就对功耗要求比较高了,比如智能穿戴,安装在野外的设备,我们不是时刻都需要让 MCU 运行在最高频率,这个时候就需要通过 MCU 来控制整个产
1. STM32的Timer简介  STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器 ,看门狗定时器暂不讨论。今天主要是研究剩下的8个定时器。    其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时
1.  BKP可以用来保存数据       BKP中包括了42个16位的寄存器,共可保存84字节的内容,它们由VBAT的供电来维挂。2.  BKP内保存的数据可以被毁灭(如果有人希望恶意得到这些数据的话,令其丢失比保护数据更重要)。STM32提供了一种称之为TAMPER的机制来完成。中文译为“侵入检测”,这需要占用一个
转载 5月前
20阅读
一、USB简介USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、Microsoft 等多家公司联合提出的。USB 发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是
今天有空,开贴讲讲,怎样配合ST 提供的库函数理解STM32F103 的USB模块,以及怎么调用这些库函数来实现基本的USB通信。题目很大,先只讲讲最简单的应用。1 关于512字节的Packet Buffer在STM32F103的USB模块中有一个RAM 区,称为Packet Buffer,共有512字节。USB模块中有个Buffer Description Table,这个Table位于512字
开发环境:Window 7 开发工具:Keil uVision5 硬件:stm32f103c8t6stm32系列芯片很多都拥有一个USB2.0全速的通讯接口,下面介绍怎么使用st官方的usb应用例程。 首先从官网下载源码: https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-softw
  1.ADC介绍STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。ADC功能框图:把整体框图分成若干个部分,
今天心血来潮想写点东西 做比赛这么久了,应该写点东西,一是为了给自己学的知识一个总结,二是可以锻炼自己的写作能力与表达能力,帮助他人避免自己走过的坑stm32 USB VPC虚拟串口简介很多stm32的开发版都带有一个usb接口,可以用cubeMx将其配置成一个虚拟串口,使用USB线就可以打印调试信息,省去了用TTL转USB的步骤,而且USB虚拟串口的速度和稳定性比TTL转USB要好,在开发中,这
        SPWM称为正弦波脉宽调制,其原理是采用三角波作为载波,正弦波作为调制波合成后生成的等高不等宽的PWM波。在simulink仿真中直接用三角波模块与sine wave合成即可,但对于编程来说比较麻烦,且运算较大占用CPU资源,一般采用查表法来实现正弦波。  可以看到仿真的PWM信号是
目的:对运行于STM32的嵌入式代码程序进行加密编译环境:IAR Embedded System for ARM5.5一.STM32Flash组织STM32的Flash包括主存储器(HD版本,512KB)+信息块。信息块包括2KB的系统存储器(用于系统自举启动代码)和16字节的选项字节(8个字节数据+8个字节数据的反码)。 二、STM32读保护STM32读保护是通过设置RDP选
stm32简易闹钟设计、制作一个简易的闹钟。要求如下: (1)作品需设有电源指示灯(绿),上电后,指示灯亮; (2)该闹钟能够显示当前的日期和时间,显示界面如下: Alarm Clock Date:年-月-日 (日期) Time:时:分:秒 (时间) Alm: 时:分:秒 (报警时间) (3)报警时间可调。设4个按键,分别为调时、调分、调秒、确定 (4)当报警时间到达时,采用蜂鸣器报警,蜂鸣器要求
战舰STM32F103ZET6开发板ZET6芯片 该芯片内部自带了64k字节的SRAM,以及512K的内部FLASHIROM1=0x80000=512K 和IRAM1=0X10000=64k的大小同时开发板外置了1M字节外部SRAM芯片(IS62WV51216)1M字节(即512K*16位)其中512K是由19根地址线决定,219=512K; 16位是由16根数据线决定的64k字节内部S
  • 1
  • 2
  • 3
  • 4
  • 5