CC2530 GPIO口编程2 (上拉、下拉,三态)
先介绍一下上拉、下拉:
上拉、下拉
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.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值. 2.OC门电路 ...
- 浅谈上、下拉电阻的作用
浅谈上.下拉电阻的作用 上下拉电阻: 1.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电 ...
- 上、下拉电阻(定义、强弱上拉、常见作用、吸电流、拉电流、灌电流)
目录 1.上.下拉电阻定义 2.强上拉.弱上拉 3.上.下拉电阻的作用 3.1.维持输入管脚是一个稳态 3.2.三极管实现电平转换电路的外围电路 3.3.OC.OD电路 3.4.总线I/O接口上.下拉 ...
- uniApp开发小程序(7)使用mescroll配置上啦下拉的样式,以及分类页面的配置
使用第三方 mescroll 下拉刷新组件,使用 [wxs+renderjs实现]高性能的下拉刷新上拉加载组件.支持uni-app的下拉刷新和上拉加载的组件,支持原生页面和局部区域滚动. mescro ...
- vue.js项目实战运用篇之抖音视频APP-第九节: 视频上滑下拉播放功能
[温馨提示]:若想了解更多关于本次项目实战内容,可转至vue.js项目实战运用篇之抖音视频APP-项目规划中进一步了解项目规划. [项目地址] 项目采用Git进行管理,最终项目将会发布到GitHub中 ...
- GPIO口配置为上拉,下拉输入
每个gpio内部有三种状态:上拉.下拉.不拉. 什么时候,需要选择上拉.下拉或不拉呢 1. 如果是output,那个一般选择no pull,这样,引脚才能根据你的output数据,进行正确输出. 2. ...
- STM32 GPIO的输入、输出模式的介绍应用总结(模拟/浮空/上拉/下拉/推挽/开漏)
GPIO的输入.输出总结 一.输入模式 1.GPIO_Mode_AIN(==模拟输入==) 2.GPIO_Mode_IN_FLOATING(==浮空输入==) 3.GPIO_Mode_IPD(==下拉 ...
- js实现页面的上滑下拉功能
这两天做项目,用到了上滑和下拉的功能,主要是通过监听touchmove,touchstart,touchend三个事件去判断页面上滑状态还是下拉状态. 同时加一个知识点:有时在监听时会报错,这个错是这 ...
- 微信小程序---上拉/下拉获取信息组件
1. 前端 1.1 app.json配置(默认不支持下拉) 局部配置,如果想全局都可以下拉,那配置在全局的app.json即可 {"enablePullDownRefresh": ...
最新文章
- 深度:生成模型(GAN)的最新进展
- 微软修复20多年的老漏洞:Win95时就存在了
- Systick 延时函数详解
- 4.K-MEANS聚类算法
- Use function as controller
- 为什么应该在业务层实现管道模式,而不用ASP.NET Core Middleware实现 | 2点原因和实现方式...
- html5表单与PHP交互
- 开源软件 Apache Dubbo 牵手 IDE 插件,开发部署提速不止 8 倍
- 怎么关闭苹果手机自动扣费_这些手机功能不关闭,可能会被“自动扣费”
- kubernetes的常用命令
- 从 Flash 到 WEBGPU,Web 图形技经历过的变革你了解吗?
- 「手把手带你学算法」本周小结!(贪心算法系列三)
- 操作系统课程设计-模拟操作系统
- Unity中文API参考手册
- bootbox api
- endnote修改正文中参考文献标注_如何用endnote修改毕业论文后参考文献格式为毕业手册要求格式...
- 非支配快速排序算法详解
- 学习————运算符!
- 不是美术生学3D建模多久能上手?靠自学很难学成功吗?
- 【Android】自动瘦脸与眼睛放大美颜算法