当前位置: 首页 > news >正文

科讯网站模版网如何把自己的网站推广出去

科讯网站模版网,如何把自己的网站推广出去,3d动画制作视频教程,电子商务网站的建设目标GPIOx_BRR 寄存器作用 GPIOx_BRR(Bit Reset Register)是 STM32 中专门用于 原子操作清除 GPIO 引脚输出电平(即置低)的寄存器。其核心功能包括: 单引脚或多引脚快速置低:通过写入对应位为 1,直…

GPIOx_BRR

寄存器作用

GPIOx_BRR(Bit Reset Register)是 STM32 中专门用于 原子操作清除 GPIO 引脚输出电平(即置低)的寄存器。其核心功能包括:

  • 单引脚或多引脚快速置低:通过写入对应位为 1,直接拉低指定引脚电平。

  • 原子性操作:无需读-改-写流程,避免多线程或中断环境下的数据竞争。

  • 硬件效率优化:相比直接操作 ODR 或 BSRR,代码更简洁且执行速度更快。

地址偏移:0x14 复位值:0x0000 0000

寄存器结构

位域

    • 低 16 位有效(对应 Pin 0 ~ Pin 15),每位控制一个引脚的清除操作:

      • BRy = 1(Bit Reset for Pin y):对应引脚输出低电平(ODRy = 0)。

      • BRy = 0:无影响。

    • 高 16 位保留(通常写入无效)。

配置模式详解

例1

将 PA6 置低。

GPIOA->BRR = (1 << 6);  // 写入 BR6=1,PA6 输出低电平

例2

将 PB3、PB5、PB7 同时置低。

GPIOB->BRR = (1 << 3) | (1 << 5) | (1 << 7);  
// 等效于 PB3=0, PB5=0, PB7=0

例3

快速切换 PC4 电平(高 → 低 → 高)。

GPIOC->BSRR = (1 << 4);   // PC4 置高(BSRR 低16位)
delay_ms(100);
GPIOC->BRR = (1 << 4);    // PC4 置低
delay_ms(100);

GPIOx_LCKR

寄存器作用

GPIOx_LCKR(Lock Register)用于 锁定 GPIO 端口的配置,防止后续软件意外修改引脚的工作模式(如输入/输出模式、速度、复用功能等)。锁定后,相关配置寄存器(如 GPIOx_CRLGPIOx_CRH)将无法被修改,直到下次系统复位。

  • 保护关键引脚的配置(如安全控制引脚)。

  • 防止多任务环境下配置被意外篡改。

  • 确保实时性要求高的引脚配置稳定。

地址偏移:0x18 复位值:0x0000 0000

 寄存器结构

位域

位域名称描述
LCKKBit 16锁定键:写 1 使能锁定操作,写 0 无效。需按特定顺序写入。
LCKyBit 0~15引脚锁定位:对应 Pin 0~15。写 1 锁定引脚配置,写 0 无影响。

配置模式详解

锁定步骤

  1. 设置目标引脚锁定位(LCKy=1):选择需要锁定的引脚(可同时锁定多个)。

  2. 置位锁定键(LCKK=1):向 LCKK 位写 1

  3. 清零锁定键(LCKK=0):向 LCKK 位写 0

  4. 再次置位锁定键(LCKK=1):向 LCKK 位写 1

  5. 读取锁定键(LCKK)确认:若 LCKK 位为 1,表示锁定成功。

锁定 PA0 和 PA2 的配置

// 步骤1:设置 LCK0 和 LCK2 为 1(锁定 PA0 和 PA2)
GPIOA->LCKR = GPIO_LCKR_LCK0 | GPIO_LCKR_LCK2;// 步骤2:置位锁定键(LCKK=1)
GPIOA->LCKR = GPIO_LCKR_LCK0 | GPIO_LCKR_LCK2 | GPIO_LCKR_LCKK;// 步骤3:清零锁定键(LCKK=0)
GPIOA->LCKR = GPIO_LCKR_LCK0 | GPIO_LCKR_LCK2;// 步骤4:再次置位锁定键(LCKK=1)
GPIOA->LCKR = GPIO_LCKR_LCK0 | GPIO_LCKR_LCK2 | GPIO_LCKR_LCKK;// 步骤5:读取 LCKK 确认锁定成功
if (GPIOA->LCKR & GPIO_LCKR_LCKK) {// 锁定成功
}

实践

实现LED闪烁实验

使用标准库实现

#include "stm32f10x.h"
#include "delay.h"int main(void)
{Delay_Init();RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 开启GPIOC的时钟GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(GPIOC, &GPIO_InitStruct);// GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET);// GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET);while(1){GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET); // 亮Delay(100); GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET); // 灭Delay(100); }
}

操作GPIO寄存器实现

#include "stm32f10x.h"
#include "delay.h"int main(void) {// 使能GPIOC时钟RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;// 配置PC13为通用推挽输出模式,最大速度2MHzGPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);GPIOC->CRH |= GPIO_CRH_MODE13_0;while (1){// 点亮LEDGPIOC->BRR = GPIO_Pin_13;Delay(100);// 熄灭LEDGPIOC->BSRR = GPIO_Pin_13;Delay(100);}
}

http://www.dtcms.com/a/474244.html

相关文章:

  • 阿里云存储服务OSS对象存储的简单使用
  • P5522 yLOI2019 棠梨煎雪
  • 建站专家wordpress 获取当前路径
  • 天津网站推广如何做一款app需要多少钱
  • 服务器放网站吗高端保姆
  • H7-TOOL RTOS Trace功能的RTX5检测增加最大任务栈使用情况检测,不需要目标板额外做任何代码实时监测
  • android usb摄像头无法缩放问题
  • 高安版_中兴B860AV3.2M_晶晨S905L3B_安卓9_兼容uwe5621ds无线-线刷固件包
  • 北京手机网站开发费用用系统建购物网站
  • linux中tee解析
  • 媒体的分类层次
  • Get请求和Post请求区别
  • 搭建网站商城医院网站推广渠道
  • 从零复现论文(2)——:基于启发式优化的无线传感器网络WSN功率分配策略
  • 【Swift】LeetCode 283. 移动零
  • 【Java数据结构】冒泡排序编码关键细节与避坑指南
  • DPDK中的BitMap测试
  • 网站制作合作2023企业税收标准
  • Windchill中afterVK的写法示例
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第12篇 | 接入网重构:从eNodeB到gNodeB——C-RAN与“下沉”
  • so域名的网站有哪些wordpress主题恢复出厂设置
  • Maven中的settings.xml文件配置详解
  • 南昌制作企业网站湘潭网站建设 安全还踏实磐石网络
  • 我设计的数字编码
  • 从分片到可编程网卡——【网络编程】详解 IP 协议:报头字段、路由器功能、网段划分和分片传输
  • 南通网站建设排名公司哪家好北京网站建设公司电扬
  • BSW:辅助模块、校验与代码生成笔记
  • seo网站营销推广wordpress更新版本
  • 李宏毅机器学习笔记20
  • 无锡信息网站建设最近热点新闻素材