我之前发表了两个贴子,全部是关于编译环境的
一个是IAR使用环境,一个是CCS的,见贴:
【TI首届低功耗设计大赛】+@fxyc87+CCS编译环境初识+第一课 点亮LED
https://bbs.eeworld.com.cn/thread-446897-1-1.html
【TI首届低功耗设计大赛】+@fxyc87+编译环境初识+第一课 点亮LED
https://bbs.eeworld.com.cn/thread-446878-1-1.html
这次的教程绝非简单的GPIO哦,有惊喜
那就是触摸功能,话说MSP430FR5969的触摸功能搞级简单及强大
先说关于GPIO的几个寄存器吧(如果你还没有手册可以点上边两个教程,内有全部手册及开发板原理图)
PxIN:输入寄存器,直接查看输入引脚的高低电平,
PxOUT:输出寄存器,
PxDIR方向寄存器,1时为输出,0时为输入
PxREN:上下拉启用寄存器 ****重要
前边三个我就不用多讲了吧,随便会点单片机知识的都知道啥意思,
PXREN,见手册图:
当引脚设置为输入模式时(上电默认状态)
PXREN置1,开启上/下拉,
开启后当PXOUT置1时即上拉,否则下拉
若上下拉后引脚电平固定为高电平或低电平
默认没开启PXREN,则引脚就是触摸模式了,
以下是我的例子,当按下S1后切换模式,触摸或按键模式
LED1指示,
S2为触摸键,当为触摸时,手摸着即可点亮LED2,
当为按键模式时按下才能触发LED2亮
- //GPIO基本操作
- //S1切换模式 触摸模式、按键模式
- //LED1指示模式 亮=触摸模式、灭=按键模式
- //S2触摸或按键
- //LED2指示S2
- #include "msp430fr5969.h"
- //by fxyc87@gmail.com
- int main(void)
- {
- WDTCTL = WDTPW | WDTHOLD; //关闭看门狗
- P1DIR |= 0x01; //P1.0设置为输出
- PM5CTL0 &= ~LOCKLPM5; //启用GPIO配置
-
- P4REN=BIT5; //p4.5启用上/下拉
- P4OUT=BIT5; //p4.5上拉
- P4DIR|=BIT6; //p4.5输出 按键模式指示 按钮S1
- char key_mode=1; //0触摸模式 1按键模式
-
- while(1)
- {
- if((P4IN&BIT5)==0){ //p4.5按下
- key_mode=!key_mode;
- __delay_cycles(800000); //延时消抖
- }
-
- if(key_mode){
- P1REN&=~BIT1;
- P4OUT|=BIT6; //按键模式 LED1指示 亮
- }
- else{
- P4OUT&=~BIT6;
- P1REN=BIT1;
- P1OUT=BIT1; //触摸模式 LED1来
- }
-
- if(P1IN&BIT1)
- P1OUT |= BIT0;
- else
- P1OUT&=~BIT0;
-
- }
- }
复制代码开发板手册,
我录点视频,看我的开发板上演示的效果:
视频稍后补充
补上演示视频
没错,触摸就是这么简单,不启用上拉或下拉即可
入门学习还是使用寄存器方式吧,这样才能真正的学习好这款芯片
不要一上来就用它的库
另外大家关于这个开发板的发贴可否发到一个分坛,我看
MS430分坛有,
MSP430 LaunchPad部落 也有
还是统一发到 MSP430 LaunchPad部落 ?
谢谢大家观看我的教程
大家可以论坛搜索
【TI首届低功耗设计大赛】+@fxyc87
来搜索我发表过的贴子
你的回复是我最大的动力