草庐IT

STM32速成笔记—中断

🎀文章作者:二土电子🌸关注文末公众号获取其他资料和工程文件!🐸期待大家一起学习交流!文章目录一、什么是中断二、中断的相关概念2.1中断优先级2.2中断嵌套2.3中断服务函数2.4中断标志位三、外部中断EXIT四、中断程序配置4.1设置中断分组并使能中断4.2初始化EXIT4.3编写中断服务函数五、注意事项一、什么是中断首先介绍一下什么是中断。在实际开发过程中,中断是很有必要的。比如需要针对某种特殊情况进行快速响应,单纯的使用一个while轮询似乎并不能满足。中断的概念非常好理解,举个经典例子。比如你在家里看电视,忽然有人敲门,你临时把电视暂停了,转去开门。开完门之后再次回来继续看电视。中断也就

【STM32】标准库 I2C通信

inter(内部)ic(集成电路)bus(总线):集成电路间总线第一个是MPU6050陀螺仪加速度传感器,实现的目标,软件或者硬件实现I2C读取MPU6050其实逻辑就是通过软件I2C通信,对MPU6050芯片内部的寄存器进行读写, 写入到配置寄存器中,就可以对外挂的这个陀螺仪加速度传感器进行配置,读出数据寄存器呢,就会获得外挂模块的数据,最后把读出的数据显示在OLED上。分别是设备的ID号,一般用来测试设备的读取功能是不是正常。左边三个是加速度传感器得出的数据,分别是X,Y,Z轴的加速度,右边三个,是陀螺仪传感器的数据,分别是X,Y,Z轴的角速度。第一张图第二个器件是OLED模块,可以显示字

STM32HAL-完全解耦面向对象思维的架构-时间轮片法使用(timeslice)

目录概述 一、开发环境二、STM32CubeMx配置三、编码 四、运行结果五、代码解释六、总结概述         timeslice是一个时间片轮询框架,完全解耦的时间片轮询框架,非常适合裸机单片机引用。接下来将该框架移植到stm32单片机运行,单片机只需用1个定时器作为时钟即可。友情链接(项目示例):https://download.csdn.net/download/qq_36075612/88498232一、开发环境1、硬件平台   STM32F401CEU6   内部Flash:512Kbytes,SARM: 96Kbytes二、STM32CubeMx配置 2.1、系统时钟配置2.2

win32 API 文件夹操作函数整理

常用操作文件目录的函数1. CreateDirectory 创建文件夹原型:BOOLCreateDirectory(LPCTSTRlpPathName,LPSECURITY_ATTRIBUTESlpSecurityAttributes);参数说明:lpPathName    要创建的文件夹名称lpSecurityAttributes   忽略为NULL返回:  成功返回非零,失败返回零实例:实例:CStringstr="D:\\一级文件夹";CreteDirectory(str,NULL);str+="\\二级文件夹";CreateDirectory(str,NULL); 2.RemoveDi

STM32的Flash读写

文章目录简介存储器STM32的Flash和SRAM与Flash相关的函数flash擦除函数flash写入函数flash读取函数flash解锁函数flash加锁函数boot作用简介在STM32芯片内有一个Flash存储器,主要用于存储代码,我们先在电脑上编写程序代码,然后通过下载器把代码烧录到芯片中,这里我们烧录进去的代码其实就是烧录到了Flash中,Flash存储器有一个特点,就是在芯片断电后,里面的数据不会丢失,在重新上电后内核可以从Flash中加载代码并运行。访问内部Flash的数据速度比外部的SPI-FLASH要快得多,因此,Flash中经常存储一些关键数据,例如:在RM比赛中常常将机器

【正点原子STM32连载】 第三十章 ADC实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V42)平台购买地址:https://detail.tmall.com/item.htm?id=6092947574203)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340252-1-1.html第三十章ADC实验本章,我们将介绍STM32F103的ADC(Analog-to-digitalconverters,模数转换器)功能。我们通过四个实验来学习ADC,分别是单通道ADC采集实验、单通道ADC采集(DMA读取)实验、多通道ADC采集(DMA读取)实验和单通道ADC过采样(16位分辨率)实

KEIL5 MDK中下载STM32全系列芯片包的简易方法(免费)

本文介绍了两种免费方法目录一、用网址一键下载1.确定STM32型号2.查找对应的芯片包名称3.在浏览器中一键下载二、在官网查询再下载1.登录Keil官网2.在下图所示搜索栏中查询需要的型号。3.选中芯片包4.下载一、用网址一键下载1.确定STM32型号本例中使用的STM32型号为STM32F407VET6。2.查找对应的芯片包名称打开KeiluVision5,点击下图所示的PackInstaller图标。根据芯片型号开头字母可以查询到对应芯片。例如STM32F4系列的芯片包名称为STM32F4xx_DFP,版本为2.14.0。3.在浏览器中一键下载在网址中输入“https://www.keil

STM32的.map文件中的.bss、.data、.text、.rodata的区别及存放位置

STM32中有flash和ram,属于一整块内存中的不同位置,只是地址不同。flash的数据掉电后不会消失,ram的数据在掉电后会丢失(个人理解,数据也不是掉电丢失,而是上电的时候被初始化导致数据丢失)。.bss段:用来存放未被初始化的全局变量和静态变量(全局和局部都是,初始化为0的好像也会被放在这里).data段:用来存放已初始化的全局变量和静态变量.text段:用来存放程序代码.rodata段:用来存放常量和字符串常量等(const或者格式化打印时候的字符串等)堆、栈STM32中的堆栈是在启动文件中配置的空间大小,位于ram,是跟在.data段和.bss段后面的一块空间。在STM32中,通

32. 干货系列从零用Rust编写正反向代理,关于堆和栈以及如何解决stack overflow

wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy关于栈StackStack可以被认为是一堆书。当我们添加更多的书时,我们将它们添加到栈的顶部。当我们需要一本书时,我们从上面拿一本。添加数据称为压入栈移除数据称为弹出栈这种现象在编程中被称为后进先出

STM32 学习笔记(六)定时器中断:内部时钟模式,外部时钟模式

TIM定时器是功能最强大,内容最复杂的32结构。之前51用过的功能,定时产生中断。输出比较,常用于产生PWM波形,驱动电机等。输入捕获,测量方波频率。编码器,读取正交编码器的波形。最大定时时间:72M/65536/65536=中断频率,中断频率取倒数是最大定时时间。定时器可以级联,比如72MHz的最大定时59.65s,级联一次*65536*65536.类型编号总线功能高级定时器TIM1、TIM8APB2拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能通用定时器TIM2、TIM3、TIM4、TIM5APB1拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获