置位:|= , 清0:&=~

清0例:*(unsigned int*)0x40010C0C &=~(1<<0)

先让1左移0位,即

再全部取反,即

再与之相与,即....

我们知道1和1或0相与都为它自己本身,而0和0或1相与都为0,故达到了清0的作用

置位例:0xABC6|=((1)<<3)

0xABC6=

首先,1左移3位,得到0000 0000 0000 1000

|运算符 0|0=0,0|1=1,1|0=1,1|1=0;即相同为0,不同为1

即1010 1011 1100 1110

如此以来就达到了置位的效果。

************************************************************************************************************

PB0使能

GPIOB起始地址

控制ODR寄存器

配置IO口为输出(控制CRL寄存器)

  推挽输出主要目的为增强输出的负载能力。推挽既可以输出低电平也可以输出高电平;STM32的引脚一般是高阻态,但是推挽输出默认为低电平。

使能时钟(RCC_APB2ENR)

代码:

//打开GPIOB端口的时钟
    *(unsigned int * )0x40021018 |= ( (1)<<3 );
    //配置IO口为输出
    *(unsigned int * )0x40010C00 |= ( (1)<<(4*0) );
    //控制ODR寄存器
  *(unsigned int * )0x40010C00 &=~(1<<0);

常用置位、清零解释及stm32f103寄存器点亮led相关推荐

  1. 【STM32-野火】(三)使用寄存器点亮LED

    [STM32-野火](三)使用寄存器点亮LED (一).由于stm32比51要更加高级,所以配置时不仅有输入还有输出,此时由配置高低寄存器决定端口,要配合材料看. 对应上图写配置GPIO为输出的代码 ...

  2. STM32C8T6之使用寄存器点亮LED灯

    这几天肺炎闹得沸沸扬扬,我窝在家里学习STM32.这篇博客筹备了3-4天吧,终于完成了. 实验电路如下图所示: 这里以PC13为例. 用寄存器点亮LED灯,主要就是操作GPIOx_ODR寄存器,GPI ...

  3. 8.裸板--C语言下的寄存器的读写置位清零操作

    从CPU的角度来看,外设的寄存器跟通用寄存器操作一样,对它们的地址进行读写移位等操作即可进行配置读取写入等动作. 通用寄存器有15个 寄存器名字 Reg# APCS 意义 R0 a1 工作寄存器 R1 ...

  4. 野火STM32F103指南者笔记1.寄存器点亮LED

    通过讲解我知道了LED可以通过控制寄存器来点亮LED.选择GPIOB端口寄存器. 控制寄存器通过基地址. 但是要分为三步: 1.打开时钟使能寄存器(GPIOB挂载到APB2上,时钟在AHB上)时钟默认 ...

  5. STM32寄存器点亮LED(什么是寄存器、GPIO工作方式、点亮原理)

    一.什么是寄存器   STM32编程通常有两种编程方法,一种是寄存器编程:另一种是固件库编程,其中寄存器编程是基础,而固件库编程是在寄存器编程的基础上升级而来的一种易于学习和开发的方法,是学习STM3 ...

  6. 使用寄存器点亮LED——编程实战

    stm32的编程和stc89c51还是存在着很多思想上的不同的,在51单片机中,我们点亮LED灯,只用给对应IO高低电平就可以了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且 ...

  7. 野火STM32寄存器点亮LED灯详解

    ** 1.需要先打开RCC总控制信号APB2->GPIOB中IO端口B时钟使能 ** 程序代码为:*(ussigend int *)0x40021018|=(1<<3); ** 2. ...

  8. matlab 位清零,数据处理指令之: BIC位清零指令

    6.14 BIC位清零指令1.指令的编码格式 BIC(Bit Clear)位清零指令,将寄存器Rn的值与第二源操作数的值的反码按位做"逻辑与"操作,结果保存到Rd中. 指令的编码格 ...

  9. 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解

    文章目录 一.题目简述 二.简述:初始化GPIO,点亮LED灯 三.工程文件模板的建立 四.使用寄存器点亮LED灯--代码部分 1.硬件连接设计 2.打开之前建立的工程模板 3.代码编写 4.硬件连接 ...

最新文章

  1. C语言指出下列程序的错误,2012年计算机二级C语言精编教程第二章(8)
  2. linux如何右键新建文件夹,在Ubuntu 18.04右键菜单中增加新文档(New Document)及其他类型选项...
  3. 【Linux】【服务器】 CentOS7下关机和重启命令
  4. 查看家庭组组计算机用户名密码是什么,windows10系统如何查看家庭组密码
  5. 乐器演奏_深度强化学习代理演奏的蛇
  6. P3800 Power收集
  7. 简书bug(已修复):网络不佳时安卓1.11.3呈现的空白页面如图
  8. Atitit httpclient 概述  rest接口
  9. 软件工程自学笔记一(基础篇)
  10. hspace在表格中无效吗html,HTML代码汇总详解
  11. IBUS-WARNING **: 09:23:08.407: The owner of /home/cl/.config/ibus/bus is not root!
  12. 基本过滤工具之配置前缀列表
  13. 大量用户反馈 QQ 账号被盗;​AirPods Pro2 或支持查找功能;Spring Boot 2.7.1发布|极客头条
  14. LEF和GDS匹配问题
  15. 手把手教你写Ov7725摄像头数据采集模块(带Verilog代码)
  16. iMindMap邀您一起“约惠”开学季
  17. 在Windows 8/WP/Silverlight/WPF下创建五角星
  18. 七日杀服务器无限刷空投,七日杀空投作弊代码 | 手游网游页游攻略大全
  19. Win7环境安装Anaconda
  20. 提交代码到git仓库

热门文章

  1. Improving Sample Efficiency In Model-Free Reinforcement Learning From Images 论文翻译
  2. 转:网御星云防火墙CPU使用率100%的解决方案
  3. 【JZOJ 省选模拟】6681.图
  4. STM32学习笔记(超详细整理144个问题)--转
  5. 解读《大数据产业发展规划(2016-2020年)》
  6. 【Java调试工具JSHDB的使用】
  7. WebService服务端与客户端调用示例
  8. 百度公司的笔试题目等
  9. 安全狗受聘成为福州网信办网络安全技术支撑单位
  10. 第十一周项目——Time类中的运算符重载