STM32入门——寄存器

发布者:心境恬淡最新更新时间:2022-11-16 来源: elecfans关键字:STM32  入门  寄存器 手机看文章 扫描二维码
随时随地手机看文章

GPIO学习:

引脚的分类:1.电源引脚 2.晶振引脚 3.复位引脚 4.下载引脚 5.BOOT引脚 6.GPIO引脚

GPIO的结构:1.保护二极管 --引脚两端连接上两个二极管,设置好高低电压,这样超过这个电压之后二极管导通就会保护里面的电路。这能处于两端电压设置的中间值。2.上下拉电阻--上下拉电阻在输入方向门口,用于稳定电压 3.P-MOS和N-MOS管 --- 这是输出模式的门口,推挽输出和开漏输出,推挽输出3.3V ,靠命令传来的电压,激活开关,使他们链接对应的高低电压传出去。 开漏输出能输出5V电压,开漏输出就是控制开关开或者关,上边要接上一个上拉电阻,关掉就是低电压,开开就是高电压。 4.输出寄存器---输出寄存器里面放着0和1用来表示高低电压,相当于开关命令。5.复用功能输出 6.输入数据寄存器 通过触发器存储电平状态 7.复用功能输入 8.模拟输入输出 --采用ADC采集电压, 施密特触发器只能存储0/1 这个ADC能采集到电压变化

GPIO的工作模式:

1.输入:(模拟,上拉,下拉,浮空) 模拟是用来采集动态电压的,上下拉就是给端口一个默认的输出电压,浮空是完全由外界决定。 2.输出: (推挽,开漏)

GPIO寄存器:

GPIO库函数:


关键字:STM32  入门  寄存器 引用地址:STM32入门——寄存器

上一篇:STM32F103配置串口(USART)流程
下一篇:stm32 PWM呼吸灯

推荐阅读最新更新时间:2024-11-11 10:41

stm32 pwm性能和fpga脉冲性能比较
stm32 pwm采取两种方式,一种是固定设置方式, 例如设置计数器为199个clk,脉宽为100clk ,第二种方式采取DMA配置脉宽方式, 例如我开了一个3000大小的数组,里面都写100, 采取循环DMA发送 fpga就比较简单,对clk计数,最大值为100,到0- 49的时候io为0,50-99为io口为1, 这样就产生了pwm波形 测试结果如下 stm32下面pwm两种方式性能都差不多, 360K基准上下波动3K,最大可达到5K, dma和直接pwm都一样。 fpga方式下面,410K基准上波动不超过1k 性能差异很明显,fpga方式远远好于stm32, 特别是考虑到多轴同步的时候更是这样。 示波器采用同样条件
[单片机]
基于STM32物联网开发板(3)--红外测温MLX90614
1.MLX90614简介 MX90614是一款由迈来芯公司提供的低成本,无接触温度计。输出数据和物体温度呈线性比例,具有高精度和高分辨率。TO-39金属封装里同时集成了红外感应热电堆探测器芯片MLX81101(温度是通过PTC或是PTAT元件测量)和信号处理专用集成芯片MLX90302,专门用于处理红外传感器输出信号。用以阻碍可见光和近红外光辐射的光学滤波器(可传播长波)集成在封装内提供对环境和日光的免疫。滤波器的波长通带为5.5到14μm。由于集成了低噪声放大器、17位模数转换器和强大的数字信号处理芯片 MLX90302,使得高精度和高分辨度的温度计得以实现。一个附加的片上温度传感器用来测量芯片的温度。测量完两个传感器的输出后,
[单片机]
基于<font color='red'>STM32</font>物联网开发板(3)--红外测温MLX90614
AVR I/O口使用方法
AVR单片机寄存器 DDRx PORTx PINx 与对应IO端口之间的关系(x代表某个端口,如A端口、B端口等) 下表以端口B的第2位PB2为例子加以说明,并且假设PB2为悬空状态 DDRB.2 PORTB.2 读取PINB.2的结果 引脚PB2的状态 1 1 1 PB2推挽输出 1 1 0 0 PB2推挽输出 0 0 1 1 PB2弱上拉,可作输入 0 0 × PB2高阻抗,可作输入 读取PINB.2时,就是读取PB2引脚的实际电平, 如果PB2直接接VCC,那么任何时候读取PINB.2的结果都是1 如果PB2直接接GND,那么任何时候读取PIN
[单片机]
STM32-串口超时判断方式接收未知长度数据
usart.c串口中断处理函数: void USART1_IRQHandler(void) { u8 res; if(USART1- SR&(1 5))//接收到数据 { res=USART1- DR; if(USART1_Recv_LenCV_LEN) //还可以接收数据 { TIM3- CNT=0; //计数器清空 if(Rec_Over_Flag==0)TIM3_Set(1); //使能定时器4的中断 USART1_RX_BUF =res; //记录接收到的值
[单片机]
关于stm32的flash的擦除的理解
最近消化 正点原子《STM32不完全手册》—— 第三十一章 FLASH模拟EEPROM实验 时,对判断FLASH是否需要擦除的语句有点不理解,度娘了才知:FLASH擦除后字节存储的数据是0XFF void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite) { u32 secpos; //扇区地址 u16 secoff; //扇区内偏移地址(16位字计算) u16 secremain; //扇区内剩余地址(16位字计算) u16 i; u32 offaddr; //去掉0X08000000后的地址 if(W
[单片机]
STM32串口获取氨气传感器数据
传感器:ZE03电化学模组NH3NH3 (0-100ppm) 同上篇关于STM32串口接收激光粉尘传感器的博文差不多,因为该传感器提供了串口输出数据,其他配置可以和粉尘传感器一样不变,主要修改串口中断函数即可 void USART2_IRQHandler(void) //串口2中断服务程序(氨气浓度测量) { u8 Res; static char i=0, start=0; if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断 { Res =USART_ReceiveData(USART2); //读取接收到的数
[单片机]
基于STM32F103入门2——按键点灯
1:按键不带锁存 不带锁存的意思就是 比如你按下按键灯亮,但是你一旦松手了灯就熄灭了,所以你想这个灯一直亮,那么你就一直按着按键不松手。 1.1例程 key.c /*========================key.c=========================*/ #include stm32f10x.h #include key.h /*按键初始化函数*/ void KEY_Init(void) { //1.打开控制GPIOA的时钟(APB2) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //2.配置结构体
[单片机]
STM32学习笔记之复位后初始化变量非零方法
一些产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。 在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢。 什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准确,所以喜欢举一些例子来辅助理解文字。) 定义一个变量:int nTimerCount=20;变量nTimerCount就是初始化变量,也就是
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved