首页 > TAG信息列表 > GPIOB
寄存器操作
基本概念 给一个内存空间分配好地址,然后这个特殊的内存空间叫寄存器 stm32寄存器 在stm32f10x.h头文件中实现寄存器映射 #define __IO volatile /*!< defines 'read / write' permissions */ typedef struct { __IO uint32_t CRL; __IO uint32_t CRH;AD5592R STM32驱动代码
一、前言 最近项目上需要使用8路DAC,本来想用STM32自带的DAC,但是STM32自带的DAC好像只有2路,不满足要求,市面上很多的DAC芯片虽然有8路,但是精度只有8位,而我需要一个精度更高的,在选型的时候选到了ADS9226这款芯片,它有8个DAC通道,精度是12位的,当时也只关心这2个指标。 等到使用NB-IOT采集温湿度案例
最终效果及试题 演示视频 所用文件 代码参考 main.c部分代码参考 /** ****************************************************************************** * File Name : main.c * Description : Main program body **********************************GPIO工作原理
一、 4种输入模式: 输入浮空输入上拉输入下拉模拟输入 4种输出模式: 开漏输出开漏复用功能推挽式输出推挽式复用功能 3种最大翻转速度: -2MHZ-10MHz-50MHz 推挽输出: 可以输出强高低电平,连接数字器件。 开漏输出: 只可以输出强低电平,高电平得靠外部电阻stm32寄存器点亮RGB LED灯
1. 项目: 使用野火stm32指南者开发板寄存器点亮RGB LED灯。 2. 代码: main.c #include "stm32f10x.h" int main(void) { /*操作寄存器绝对地址*/ *(unsigned int *)0x40021018 |= ((1)<<3); //打开GPIO端口时钟 *(unsigned int *)0x4001stm32寄存器封装
文章目录 前言一、版本一二、版本二三、版本三 前言 本文记录的是用stm32开发的时候,一些底层的寄存器封装,固件库是如何帮我们完成这些工作的 一、版本一 代码如下(示例): /* 外设基地址 */ #define PERIPH_BASE ((unsigned int)0x4000000 /* 总线基地址 */ #defineSTM32F103寄存器方式点亮LED流水灯
STM32F103寄存器方式点亮LED流水灯 文章目录 STM32F103寄存器方式点亮LED流水灯1、寄存器映射原理2、GPIO端口的初始化三步骤3、程序设计思路4、软件仿真--示波器5、硬件测试6、总结 1、寄存器映射原理 存储器本身没有地址,给存储器分配地址的过程叫存储器映射;在存储利用STM32最小系统板寄存器方式完成流水灯
目录 一、STM32F103系列芯片地址映射和寄存器映射原理以及GPIO端口初始化设置 二、STM点亮流水灯 三、总结 一、STM32F103系列芯片地址映射和寄存器映射原理以及GPIO端口初始化设置 1、STM32F103系列芯片简介 STM32属于一个微型控制器,自带了各种常用的通信接口,比如USART,12C,嵌入式系统作业5
目录 一,使用工具二,程序设计思路1.关于GPIOx地址2.时钟的地址3.初始化GPIO端口4.设置低电平 三,创建LED项目新建项目 一,使用工具 1.stm32f103C8T6 2.USB转串口 3.面包板 4.导线若干 5.LED3个 二,程序设计思路 这里我们通过GPIO端口来点亮LED灯 首先打开GPIO口的时钟 然后初21-10-15_STM32_GPIO_3
配置寄存器操作IO口步骤 1.初始化HAL库: HAL_Init(); 2.初始化系统时钟: Stm32_Clock_Init(432,25,2,9); 3.使能IO口时钟,配置IO口时使能寄存器:RCC->AHB1ENR 4.初始化IO口模式,配置四个寄存器 端口模式寄存器(MODER) 端口输出类型寄存器(OTYPER) 端口输出速度寄存器(OSPEEDER) 上下拉寄存STM32 remap
PB3.4做GPIO用时需要重映射 RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);STM32复习笔记(五) —— GPIO锁定机制
STM32复习笔记(五) —— GPIO锁定机制 1.GPIO 锁定机制 锁定机制可以锁定 IO 口的配置,锁定一个端口位之后,直至下一次复位之前,将不能再更改端口位的配置 2.本例程软件设计思路 1)初始化时即锁定 GPIOB 的 GPIO_Pin_0 配置 2)确认锁定后再尝试修改 GPIOB 的 GPIO_Pin_0 配置为STM32复习笔记(四) —— 按键翻转LED
STM32复习笔记(四) —— 按键翻转LED 1.本例程软件设计思路 1)选定 GPIOA GPIO_Pin_0 控制 LED ;选定 GPIOB GPIO_Pin_0 作为按键输入 2)配置 LED GPIO 为推挽输出,速率10MHz 3)配置 KEY GPIO 为浮空输入,本例因使用软件仿真,无法使用输入功能 (或未得知如何使用),则将 KEY GPIOSTM32中操作寄存器GPIOB_CRL &= ~( 0x0F<< (4*0))与GPIOB_CRL &=~(0x0F)之间有什么区别吗?
没有区别,作用相同。只是这样写便于修改和沿用。 对于只用到PB0端口的程序~(0x0f << (4*0)) 和~0x0f没有区别。0x0f <<(4*N) 就是 向左 移动N个4位,所以0x0f << (4*0)和0x0f一样。 如果使用PB1,则为~(0x0f << (4*1))。即0x0f << (4*1)为0xf0, 取反为0x0f. 但是如果使用到了PB1等其他基于STM32的电梯楼层控制系统proteus仿真
硬件设计 (末尾附文件) 仿真图如下所示: 程序设计 #include "main.h" #include "delay.h" #include "led.h" #include "key.h" #include "timer.h" char flag1; //定时时间到标志 u8 counter; //计数器 u8 state; //当前电梯状态 u8 statepre; //之前电梯28BYJ-48步进电机+ULN2003驱动程序(stm32f103c8t6)
28BYJ-48步进电机+ULN2003驱动程序(STM32) 28BYJ-48步进电机+ULN2003驱动 采用Keil编程基于stm32f103c8t6最小系统板基于坛友代码修改得来。 引脚接线 //IN4: PB6 d //IN3: PB5 c //IN2: PB4 b //IN1: PB3 a 主程序main.c代码 #include "stm32f10x.h" #includeSTM32——PID恒温控制
元件 stm32f1核心板、L298M模块、led一个、三极管一个、蜂鸣器一个、DHT11一个、LCD1602一个、电阻10欧10K欧、可调电阻10K、加热丝 功能描述 用DHT11检测当前环境温湿度,并将数据显示在LCD1602上,在用设定温度与当前温度相减,通过PID算法计算出当前输出脉宽,并将其加在L298N模块BH1750驱动(iic通信协议)——stm32GPIO口配置基于STM32_HAL库
GY-30简介 GY-30是一款内置ROHM-BH1750FLV芯片的数字光照强度模块。 BH1750FV1是两线式串行总线接口(IIC)的16位数字输出型环境光强度传感器, 芯片内置16bitAD转换器,可直接数字输出,测量光照强度范围为0-65535lx(精度可选)。 模块内置电平转换,支持3-5V供电,可与5V单片机IO直接连接; Gstm32 3086A-MFP10S 驱动 步进电机(导轨)
目录 时序与引脚具体实现: 博主使用stm32(mini)作为控制器,驱动器选择了以3086A-MFP10S为芯片的模块,电机为42步进电机(连导轨)。 驱动器链接:https://item.taobao.com/item.htm?spm=a21bo.2017.1997525049.9.5af911d9SHxll6&id=13122246267 步进电机/导轨:https://item.taobao.c((GPIO_TypeDef ) GPIOB_BASE)或((GPIO_TypeDef ) xxxx)
///////////////((GPIO_TypeDef ) GPIOB_BASE)或((GPIO_TypeDef ) xxxx)//////////////////// #define GPIOA ((GPIO_TypeDef*)GPIOA_BASE) 1)GPIOA_BASE被强制转换为地 址,空间以GPIO_TypeDef的 类型进行 构建,首址为GPIOA_BASE,空间内有成员,之间依各自固有类型顺序分配相应空间; 2)GPI【1】STM32:跑马灯配置
一、库函数版本 1.新建一个 led.h 文件 #ifndef _LED_H #define _LED_H #include "sys.h" #define LED0 PBout(5) // DS0 #define LED1 PEout(5) // DS1 void LED_Init(void); // LED接口初始化 #endif 这段代码里面最关键就是 2 个宏定义,通过位带操作 PB5 输出高低电stm32的GPIO编程之寄存器操作
直接寄存器操作 编程思路 ① 找到控制LED灯连接的GPIO口PB5和PE5 ② 确定GPIO口工作模式:推挽输出,高电平灯灭,低电平灯亮 ③ 确定端口寄存器映射地址 ④ 编程,读写相应的寄存器 3种方式: • 直接写寄存器ODR • 写BSRR • 位带操作 ⑤ 编译、下载、调试 1. ODR直写方式: PB的基地单片机STM32学习笔记之寄存器映射详解
我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么? 在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元IIC的SDA_IN SDA_OUT
#define SDA_IN() {GPIOB->CRL&=0XF0FFFFFF;GPIOB->CRL|=8<<24;}#define SDA_OUT() {GPIOB->CRL&=0XF0FFFFFF;GPIOB->CRL|=3<<24;} GPIOB->CRL:PB端口的低位寄存器, 0XF0FFFFFF,由上图8.2.1可知对应的是CF6[1:0]和MODE6[1:0] 8<<24:0X00008000嵌入式02 STM32 实验05 蜂鸣器
蜂鸣器:是一种一体化结构的电子讯响器。主要分为分压式蜂鸣器和电磁式蜂鸣器两种类型。 一、有源/无源蜂鸣器(不是指是否带电源,而是有没有自带震荡电路) 1、有源蜂鸣器:有源蜂鸣器自带震荡电路,一通电就会发声。 2、无源蜂鸣器:没有自带震荡电路,需要外部提供2~5Khz左右的