如何对变量进行对位置1与对位清0
在单片机开发或者驱动开发的过程中,需要对寄存器的某个位进行置1或者清0操作,且不影响其它位,那是如何进行实现的呢,先以某个变量为例子

上面看懂之后,以某个led开发为例子
led.h

#ifndef __LED_H
#define __LED_H#include "stm32f4xx.h"#define RCC_AHB1ENR          *((volatile  unsigned int *)(0x40023800+0x30))  //值强制类型转换为地址,地址解引用,可访问地址空间的值
#define GPIOF_MODER         *((volatile  unsigned int *)(0x40021400+0x00)) //值强制类型转换为地址,地址解引用,可访问地址空间的值
#define GPIOF_OTYPER        *((volatile  unsigned int *)(0x40021400+0x04)) //值强制类型转换为地址,地址解引用,可访问地址空间的值
#define GPIOF_OSPEEDR       *((volatile  unsigned int *)(0x40021400+0x08)) //值强制类型转换为地址,地址解引用,可访问地址空间的值
#define GPIOF_PUPDR         *((volatile  unsigned int *)(0x40021400+0x0C)) //值强制类型转换为地址,地址解引用,可访问地址空间的值void Led_Init(void);#endif

led.c

#include "led.h"/******************************************
函数说明:LED0初始化
引脚说明:
LED0连接在PF9
PF9输出高电平,LED0灭;PF9输出低电平,LED0亮。
*******************************************/void Led_Init(void)
{//第五位置1,使能GPIOF组时钟RCC_AHB1ENR |= (1<<5);//设置为通用输出模式 19:18 = 0 1GPIOF_MODER  &= ~(1<<19);GPIOF_MODER  |=  (1<<18);//输出推挽 位9 = 0GPIOF_OTYPER &= ~(1<<9);//速度50MHZ 19:18 = 1:0GPIOF_OSPEEDR |=  (1<<19);GPIOF_OSPEEDR &= ~(1<<18);//设置为上拉 19:18 = 0 1GPIOF_PUPDR &= ~(1<<19);GPIOF_PUPDR |=  (1<<18);
}

以上就是对位置1与对位清0在开发中的使用了。

如何对变量进行对位置1与对位清0相关推荐

  1. 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...

    libaio是一个 Linux 库,因此不能在 Windows 10 上安装.如果您正在寻找与 Windows 相关的异步 I/O 库,可以考虑使用 Windows 平台 API,例如异步 I/O(I ...

  2. C++ 变量的定义位置

    C89 和 C99 是两套不同的C语言标准,C99 是 C89 的升级版. GCC.Xcode 对 C99 的支持非常好,可以在函数的任意位置定义变量: 根据资料,VC/VS 对 C99 的支持比较少 ...

  3. c语言变量定义位置区别,C语言中变量定义的位置(C89和C99的区别)

    C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了"哪里使用哪里定义"的这种做法,所以当用C语言进行编程 ...

  4. JAVA中变量的存放位置

    JAVA中变量的存放位置 一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所 在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该 ...

  5. smali语言详解之static静态代码块的声明与静态变量初始化赋值位置

    smali语言详解之static静态代码块的声明与静态变量初始化赋值位置 一.smali语言的静态代码块声明格式 .method static constructor <clinit>() ...

  6. C语言中变量定义的位置

    今天编了一道C语言程序,编译的时候,出现错误,源码如下: //输入一行字符串,统计大小写字母,空格的个数 #include<stdio.h> #include<string.h> ...

  7. C语言试题二十五之编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。

    1. 题目 编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数). 2 .温馨提示 C语言试题汇总里可用于 ...

  8. php 位深度,支撑位和阻力位的分析:究竟哪些位置可以形成阻力位和支撑位? 深度教程(图解)...

    股价在运行过程中,并不是毫无规律可行,我们经常会在图形走势上看到股价运行是曲折的,会有不同拐点以及平台整理,这些位置就会形成一些阻力位和支撑位,它是我们进行技术分析的一个重要方式. 那么为什么会形成这 ...

  9. 不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较

    不可将布尔变量直接与 TRUE.FALSE 或者 1.0 进行比较. 根据布尔类型的语义,零值为"假"(记为 FALSE),任何非零值都是"真"(记为 TRUE ...

最新文章

  1. 我为什么看好中国的共享单车
  2. PAT_B_1057_Java(20分)
  3. C语言学习:snprintf()函数
  4. java colormodel_ColorModel
  5. Sharding-JDBC读写分离_实现_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记017
  6. python 图形_Python切分图像小案例(1、3、2、4象限子图互换)
  7. Eucalyptus详解
  8. C++开源DirectUI库SOUI简介
  9. 【机翻】xenomai RTnet – 灵活的硬实时网络框架
  10. linux集群渲染动画,集群渲染
  11. Java项目 网上订餐系统计算机毕业设计必备
  12. 业务应用数据库压力过大解决方案
  13. 安卓手机如何查看手机控制台输出
  14. 爱剪辑为啥显示服务器繁忙,爱剪辑蓝屏怎么办?爱剪辑蓝屏的六大原因及解决方法...
  15. Comet OJ - 2019国庆欢乐赛 G 后缀数组
  16. java及vue实现获取电脑打印机及打印功能
  17. 根据中文名字首字母进行分组
  18. UVM-TLM机制解读
  19. 小程序两行金刚区以及进度条平滑滚动的实现
  20. gif如何压缩?怎么在线gif压缩?

热门文章

  1. 两Excel表如何进行关联汇总
  2. 国产达梦数据库学习笔记(一):NeoKylin7.0安装及配置与常用基础命令
  3. C语言:凑硬币(两元硬币的组合方案)
  4. 骰子gif图片,一到六,png格式,骰子游戏的骰子素材
  5. 5G基站前传第五篇《无源波分解决方案》
  6. 用Python3.6来做维基百科中文语料
  7. 微型计算机原理存储器寻址,微机原理存储器部分 微型计算机原理及应用教材.ppt...
  8. android 画板(选择图片作为背景并保存)
  9. 中文之星掌上狂拼手机输入法 网页制作软件
  10. ATA考试该注意什么