首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
学stm32寄存器了解到什么程度
2024-11-05
(stm32学习总结)—对寄存器的理解
芯片里面有什么 我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成.若与电脑类比,内核与外设就如同电脑上的 CPU 与主板.内存.显卡.硬盘的关系.STM32F103 采用的是 Cortex-M3 内核,内核即 CPU,由 ARM 公司设计.ARM 公司并不生产芯片,而是出售其芯片技术权.芯片生产厂商(SOC)如 ST.TI.Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设.如 GPIO.USART(串口).I2C.SPI
stm32寄存器版学习笔记07 ADC
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序:注入通道组相当于中断.程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换. 有16个多路通道.可以把转换组织成两组:规则组和注入组.在任意多个通道上以任意顺序进行的一系列转换构成成组转换.例如,可
stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启TIM2时钟,配置PA0输入 APB1外设复位寄存器 (RCC_APB1RSTR) APB2外设时钟使能寄存器(RCC_APB2ENR) 置1开启.清0关闭. Eg:RCC->APB1ENR|=1<<0; //使能TIM2时钟 RCC->APB2ENR|=1<<2;
stm32寄存器版学习笔记05 PWM
STM32除TIM6和TIM7外都可以产生PWM输出.高级定时器TIM1和TIM8可以同时产生7路PWM,通用定时器可以产生4路PWM输出. 1.TIM1 CH1输出PWM配置步骤 ①开启TIM1时钟,配置PA8为复用输出 APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设复位寄存器 (RCC_APB1RSTR) 置1开启.清0关闭. Eg:RCC->APB2ENR|=1<<11; //使能TIM1时钟 配置I/O口: 参见stm32寄存器版学习笔记01 GPIO口的配置
stm32寄存器版学习笔记03 外部中断
stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干扰大时,上拉/下拉输入模式也建议使用外部上拉/下拉电阻. 1.设置外部中断 的步骤 ①初始化I/O口为输入 参见 stm32寄存器版学习笔记01 GPIO口的配置. ②开启I/O口复用时钟, 设置I/O口与中断线的映射关系 这一步在函数void Ex_NVIC_Config(u8 GPIOx,u8
STM32 寄存器库和固件库
寄存器和固件库开发的差别和联系 固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道.向上提供用户函数调用的接口(API). 在 51 的开发中我们经常的作法是直接操作寄存器,比方要控制某些 IO 口的状态,我们直 接操作寄存器: P0=0x11; 而在 STM32 的开发中,我们相同能够操作寄存器: GPIOx->BRR = 0x0011; 这样的方法当然能够,可是这样的方法的劣势是你须要去掌握每一个寄存器的使用方法.你才干正确使用 STM32,而对于 STM32 这样的级别的
对stm32寄存器的理解(个人理解,大神轻喷)
学习了stm32有一年了,今天想来写写自己对寄存器的理解,帮助那些有志学习stm32的朋友们少走一些弯路. --------------------------------------------------------------------------------------------------------------------------------------- 问题一:stm32位寄存器是什么意思? 32指的是二进制的32位,也就是每一个寄存器是有32位二进制组成(当然部分寄存器
stm32寄存器版学习笔记08 DMA
DMA(Direct Memory Access),直接存储器访问.DMA传输方式无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU效率大大提高.stm32f103有2个DMA控制器,DMA1有7个通道,DMA2有5个通道,专门用来管理来自外设对存储器的访问请求,还有一个仲裁器来协调各个DMA请求的优先权. 1.DMA各通道请求 从外设产生的DMA请求通过逻辑"或"输入到DMA控制器,这就意味着同时只能有一个请求有效. 例如,串口1发送的DMA,就
stm32寄存器版学习笔记04 定时计数器中断
STM32共有8个定时计数器,其中TIME1和TIME8是高级定时器,TIME2~TIME5是通用定时器,TIME6和TIME7是基本定时器.以TIME3为例总结定时计数器的基本用法. 1.TIM3的配置步骤 ①TIM3时钟使能 APB1外设复位寄存器 (RCC_APB1RSTR) 置1开启.清0关闭. 第一位对TIM3的时钟使能 Eg:RCC->APB1ENR|=1<<1; //使能TIM3时钟 APB2外设时钟使能寄存器(RCC_APB2ENR) ②设置TIM3_ARR和TIM3_P
stm32寄存器版学习笔记02 串口通信
stm32F103RCT6提供5路串口.串口的使用,只要开启串口时钟,设置相应的I/O口的模式,然后配置下波特率.数据位长度.奇偶校验等信息,即可使用. 1.串口的配置步骤 ①串口时钟使能 APB2外设时钟使能寄存器(RCC_APB2ENR) 置1开启.清0关闭. 第14位对串口1的时钟使能 Eg:RCC->APB2ENR| = 1<<14; //使能串口1时钟 除串口1的时钟使能在RCC_APB2ENR寄存器,其余的时钟使能位在寄存器RCC_APB1ENR寄存器,而APB2(72M)的
stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)
STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CRL和CRH(模式.速度):数据寄存器IDR和ODR:置位/复位寄存器BSRR:复位寄存器BRR:锁存寄存器LCKR. I/O口模式: GPIO的8种模式 通用输出 推挽输出(Push-Pull) 可以输出高.低电平,连接数字器件 开漏输出(Open-Drain) 开漏引脚不连接外部的上拉电阻时,
STM32寄存器深入分析
可能很多刚开始学习STM32的小伙伴都有一个疑惑,创建项目时会需要很多头文件,导致学习过程中很难明白那些头文件的作用,虽然知道头文件都是对寄存器的封装,但是怎么封装的就不知道了.这里我以led灯为试验,不需要头文件,自己跟着寄存器的说明写一个简单的demo,应该能加深小伙伴们对STM32的理解. 一.有效地址 C语言功底相对差一些的小伙伴可能看不明白"STM32的寄存器手册",不明白手册中的地址说明是什么,比如手册中的两个寄存器,他们的偏移地址都是0x00,这样直接给0x00这个寄存器
stm32寄存器版学习笔记10 SPI
SPI(Serial Peripheral Interface),串行外围设备接口.SPI是一种高速的.全双工.同步的通信总线. SPI接口一般使用4条线通信: MISO 主设备数据输入,从设备数据输出 MOSI 主设备数据输出,从设备数据输入 SCLK 时钟信号,有主设备产生 CS 从设备片选信号,有主设备控制 SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置.SPI_CR寄存器的CPOL(时钟极性)位,控制在没有数据传输时时钟的空闲状态电平,此位对
stm32寄存器版学习笔记09 IIC
I²C(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外设,是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据. IIC总线在传送数据过程中共有3种类型信号,分别是开始信号.结束信号和应答信号. SCL SDA 开始信号 高电平 由高电平向低电平跳变,开始传送数据 结束信号 高电平 由低电平向高电平跳变,结束传送数据 应答信号 接收数据的IC在接收到8bit数据后向发送数据的IC发出特定的低电平脉冲,表示已经收到数据:CPU向受控单
STM32内部时钟设置-寄存器版
STM32寄存器版本——内部时钟设置 同时要记得把延时初始化函数设置好 //系统时钟初始化函数 //pll:选择的倍频数,从2开始,最大值为16 //pll:选择的倍频数,这里使用内部时钟,PLL为4就是4分频 void Stm32_Clock_Init(u8 PLL) { unsigned ; MYRCC_DeInit(); //复位并配置向量表 // RCC->CR|=0x00010000; //外部高速时钟使能HSEON RCC->CR|=0x00000001; //内部高速时钟使能HS
STM32入门系列-存储器与寄存器介绍
介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封装底层寄存器,也就为后面学习库函数的开发做好了铺垫. 什么是存储器映射 程序存储器.数据存储器.寄存器和I/O端口排列在同一顺序的4GB地址空间内.这就是我们曾提到过的被控总线的连接部分,而编程时就是操作这一块地方.存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程称为
Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO
标题: Arduino库和STM32的寄存器.标准库.HAL库.LL库开发比较之GPIO 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#Arduino,#STM32,#库,#开发] 日期: 2021-07-01 背景说明 STM32开发方式 寄存器(STM32Snippets):直接操作寄存器 SPL库(Standard Peripheral Libraries):标准外设库,将寄存器操作封装成函数 HAL库(Hardware Abstraction Layer):硬件抽象
【转载】如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结
[好文章值得分享,摘自作者:jesse] 来源:www.armjishu.com作者:jesse转载请注明出处 我的另一篇文章:<STM32嵌入式入门必看之文章-----介绍非常详细!(学STM32的理由!!!!)>http://www.cnblogs.com/stm32/archive/2011/04/25/2027321.html 首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝
STM32之输入捕获以及小小应用(库)
五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在这里.智商和情商比我高的人估计又知道我要说什么了..没错了..今天我们来了解“葵花宝典”第STM32篇之输入捕获,也就是上文所讲的“吸星大法”, 那输入捕获可以用来干嘛呢??这个问题问的好,输入捕获可以用来测量脉冲宽度或者测量频率,假如要捕获一个脉冲的高电平脉宽,我们要怎么做呢??别急哈..接下来我
STM32之GPIO操作
啊哈.没办法.外国人的芯片就喜欢用英文来命名,所以中文的:通用输入/输出 就用GPIO来代替..谁叫哥们都不是外国人呢.好啦.胡扯了一下,借用唐伯虎点秋香的话:小小书童,可笑可笑... 知道了GPIO的含义了吧..还是老规矩:不知道的,拉出去调戏十分钟.知道的.再赏美女十个.不介意吧. 在STM32中,根据“葵花宝典”中第STM32篇参考手册中,GPIO有以下几种模式: typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATI
STM32 Cube mx 安装
原文链接:http://www.cnblogs.com/strongerHuang/p/5778216.html Ⅰ.写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具.这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了. STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层.中间层.示例代码等. 现在ST公司主要升级和维护的库主要就是"Cube库"和"标准外设库&qu
热门专题
网页可能暂时无法连接,或者它已永久性地移动到了新网址
package-lock.json解除版本锁定
win7 WMI远程 拒绝访问
delphi的panel控件
jsonfield注解
time函数 getnextday
create table double 类型
QT建立长连接后端一直传递数据
Python把import和print放在一行
linux 下静态编译QT5.2.0
linux usbfs设备
创建临时表获取正式库数据
Android 手指按下后滑动,再抬起手指
excel 按类group outline
delphi xe2 安装 Raize7
1. 在实际场景中利用霍夫变换检测图中的圆并绘制结果
WordPress标题函数
postgresql15.1分布式
oracle包头和包体
Mac添加path环境变量