首页
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
热门专题
autowired 没有生效
nginx 添加location响应头
jupyter 对给定职位,汇总各类学历要求数据,画柱状图
centos6缺少libyajl库
Collectors去重
vue项目怎么不打包更新界面布局
Apache JServ 协议服务漏洞
netty SO_SNDBUF 设置大小
python字符串模糊匹配关联两个表
docker nginx 关闭80端口
c# JsonArray转成hashtable
mybatis list 模糊查询
qt图片转ASCII字符画
redhat 如何验证snmp
vs2012如何打包window服务
安卓科大讯飞语音引擎tts
vant-grid-item展示多层数据
MySQL 8.0.32无法启动
servlet容器介绍
Java 金额比例计算