先介绍一下上拉、下拉:

上拉、下拉

I/O端口中,有的上下拉电阻可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口类似于一个三极管的集电极C,

•当C接通过一个电阻和电源连接在一起的时候,该电阻成为C上拉电阻,该端口常态时为高电平, 用于检测低电平的输入

•如果C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口常态时为低电平用于检测高电平的输入

实战:•按下按键S3使D1点亮。

图1 LED引脚图

图2   S3按键引脚图

上拉模式

#include <ioCC2530.h>#define S3 P1_3#define LED1 P1_0void main(void){       //LED灯初始化:P1SEL&=~(1<<0);  // 仅将P1SEL第0位清0,P1_0定义为普通IOP1DIR|=(1<<0);  // 仅将P1DIR第0位置1,P1_0定义为输出//按键初始化 上拉模式 : P1SEL&=~(1<<3);   // 仅将P1SEL第3位清0,P1_3定义为普通IOP1DIR&=~(1<<3);   // 仅将P1DIR第3位清0,P1_3定义为输入P1INP&=~(1<<3);   // 仅将P1INP第3位清0,P1_3定义为上拉/下拉模式P2INP&=~(1<<6);  // 仅将P2INP第6位清0,整个P1口定义为为上拉模式while(1){   if(S3==0)LED1=0;//按下按键S3,点亮LED1else LED1=1;}     }

下拉模式 :

#include <ioCC2530.h>#define S3 P1_3#define LED1 P1_0void main(void){       //LED灯初始化:P1SEL&=~(1<<0);  // 仅将P1SEL第0位清0,P1_0定义为普通IOP1DIR|=(1<<0);  // 仅将P1DIR第0位置1,P1_0定义为输出//按键初始化 下拉模式 : P1SEL&=~(1<<3);   // 仅将P1SEL第3位清0,P1_3定义为普通IOP1DIR&=~(1<<3);   // 仅将P1DIR第3位清0,P1_3定义为输入P1INP&=~(1<<3);   // 仅将P1INP第3位清0,P1_3定义为上拉/下拉模式P2INP|=(1<<6);  // 仅将P2INP第6位清0,整个P1口定义为为上拉模式while(1){   if(S3==0)LED1=0;//按下按键S3,点亮LED1else LED1=1;}     }

三态模式:

#include <ioCC2530.h>#define S3 P1_3#define LED1 P1_0void main(void){       //LED灯初始化:P1SEL&=~(1<<0);  // 仅将P1SEL第0位清0,P1_0定义为普通IOP1DIR|=(1<<0);  // 仅将P1DIR第0位置1,P1_0定义为输出//按键初始化  三态模式 : P1SEL&=~(1<<3);   // 仅将P1SEL第3位清0,P1_3定义为普通IOP1DIR&=~(1<<3);   // 仅将P1DIR第3位清0,P1_3定义为输入P1INP|=(1<<3);//仅将P1INP第3位置1,P1_3定义为三态模式while(1){   if(S3==0)LED1=0;//按下按键S3,点亮LED1else LED1=1;}     }

实践表明:经过上述三个程序中设置P1INP,将引脚输入时设置为上拉、三态,都能检测到按键是否按下的状态。

作为普通IO输入时 P1INP可不设置;在进行ADC转换时,必须将引脚设置成三态,否则电压采集不准。

希望对你有帮助。

CC2530 GPIO口编程2 (上拉、下拉,三态)相关推荐

  1. 浅谈上、下拉电阻的作用/什么是拉电流和灌电流[转]

    上下拉电阻: 1.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值. 2.OC门电路 ...

  2. 浅谈上、下拉电阻的作用

    浅谈上.下拉电阻的作用 上下拉电阻: 1.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电 ...

  3. 上、下拉电阻(定义、强弱上拉、常见作用、吸电流、拉电流、灌电流)

    目录 1.上.下拉电阻定义 2.强上拉.弱上拉 3.上.下拉电阻的作用 3.1.维持输入管脚是一个稳态 3.2.三极管实现电平转换电路的外围电路 3.3.OC.OD电路 3.4.总线I/O接口上.下拉 ...

  4. uniApp开发小程序(7)使用mescroll配置上啦下拉的样式,以及分类页面的配置

    使用第三方 mescroll 下拉刷新组件,使用 [wxs+renderjs实现]高性能的下拉刷新上拉加载组件.支持uni-app的下拉刷新和上拉加载的组件,支持原生页面和局部区域滚动. mescro ...

  5. vue.js项目实战运用篇之抖音视频APP-第九节: 视频上滑下拉播放功能

    [温馨提示]:若想了解更多关于本次项目实战内容,可转至vue.js项目实战运用篇之抖音视频APP-项目规划中进一步了解项目规划. [项目地址] 项目采用Git进行管理,最终项目将会发布到GitHub中 ...

  6. GPIO口配置为上拉,下拉输入

    每个gpio内部有三种状态:上拉.下拉.不拉. 什么时候,需要选择上拉.下拉或不拉呢 1. 如果是output,那个一般选择no pull,这样,引脚才能根据你的output数据,进行正确输出. 2. ...

  7. STM32 GPIO的输入、输出模式的介绍应用总结(模拟/浮空/上拉/下拉/推挽/开漏)

    GPIO的输入.输出总结 一.输入模式 1.GPIO_Mode_AIN(==模拟输入==) 2.GPIO_Mode_IN_FLOATING(==浮空输入==) 3.GPIO_Mode_IPD(==下拉 ...

  8. js实现页面的上滑下拉功能

    这两天做项目,用到了上滑和下拉的功能,主要是通过监听touchmove,touchstart,touchend三个事件去判断页面上滑状态还是下拉状态. 同时加一个知识点:有时在监听时会报错,这个错是这 ...

  9. 微信小程序---上拉/下拉获取信息组件

    1. 前端 1.1 app.json配置(默认不支持下拉) 局部配置,如果想全局都可以下拉,那配置在全局的app.json即可 {"enablePullDownRefresh": ...

最新文章

  1. 深度:生成模型(GAN)的最新进展
  2. 微软修复20多年的老漏洞:Win95时就存在了
  3. Systick 延时函数详解
  4. 4.K-MEANS聚类算法
  5. Use function as controller
  6. 为什么应该在业务层实现管道模式,而不用ASP.NET Core Middleware实现 | 2点原因和实现方式...
  7. html5表单与PHP交互
  8. 开源软件 Apache Dubbo 牵手 IDE 插件,开发部署提速不止 8 倍
  9. 怎么关闭苹果手机自动扣费_这些手机功能不关闭,可能会被“自动扣费”
  10. kubernetes的常用命令
  11. 从 Flash 到 WEBGPU,Web 图形技经历过的变革你了解吗?
  12. 「手把手带你学算法」本周小结!(贪心算法系列三)
  13. 操作系统课程设计-模拟操作系统
  14. Unity中文API参考手册
  15. bootbox api
  16. endnote修改正文中参考文献标注_如何用endnote修改毕业论文后参考文献格式为毕业手册要求格式...
  17. 非支配快速排序算法详解
  18. 学习————运算符!
  19. 不是美术生学3D建模多久能上手?靠自学很难学成功吗?
  20. 【Android】自动瘦脸与眼睛放大美颜算法

热门文章

  1. 分享:一个Java GUI五子连珠(附码云源码)~~~
  2. 【LorMe云讲堂】贺纪正:土壤硝化作用的微生物机制与氮素管理
  3. 程序性动画 1 ——程序性动画介绍
  4. 如何实现PLC与THINGWORX工业物联网平台对接
  5. 盘古开源解析:2021年中国汽车行业运行情况总结及2022年汽车行业走势预测
  6. 上海市青少年算法月赛丙组—目录汇总
  7. 流程绩效实战管理六步法
  8. 谷歌镜像——遇到异常流量解决方法
  9. [Linux MySQL] MySQL 不停服务来启用 innodb_file_per_table
  10. NeHe OpenGL教程 第二十六课:反射