| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【MSP430G2553】图形化开发笔记(3) GPIO -> 正文阅读 |
|
[嵌入式]【MSP430G2553】图形化开发笔记(3) GPIO |
平台: ??以下大部分内容摘自《LaunchPad口袋实验平台 —— MSP-EXP430G2篇》傅强、杨艳 编著(TI大学计划嵌入式微控制器技术丛书) 概述??这是 MSP430G2553 单片机P1.0-P1.2 的原理框图,其他 IO 口的结构还不完全一样。
??以上总总迹象表明,IO 口没有最复杂只有更复杂,我们不关心用了多少硬件电路才实现了 IO 的这些功能,我们关心怎么配置寄存器去享用这些功能。 IO 的一般读写控制??读写 IO 口前,必须先设置 PxDIR,PxDIR 高电平代表 IO 是输出,低电平代表 IO 口是输入。CPU 读 IO,实际上是读 PxIN 寄存器。CPU 写 IO,实际是写 PxOUT 寄存器。 IO 的输出类型??数字电路的输出有高电平 1、低电平 0 和高阻态 z。决定高低电平的是 VCC 和 GND,在初学者映像中,VCC 算电源,GND 不算电源,这样的理解不够准确和深刻。GND 也是电源,一样得有吞吐电流的能力,没有 GND 也就没有 VCC。准确的说 VCC 和 GND 都是电压源,所以 GND 经常用 VSS 来代替。根据输出电平的“强弱”分类,可将 IO 输出分为图腾柱输出、上拉电阻输出、下拉电阻输出 3 种。 图腾柱输出??图腾柱、推挽/推拉、Push and Pull、Totem Pole 指的都是同一种电路。下图是图腾柱输出电路简图,图中的开关是受控电子开关,可以由三极管或场效应管构成。由两个开关分别连接 VCC 和 VSS 构成的输出电路称为图腾柱输出,此电路输出为强 1,强 0。
??有人可能有疑问,OUTPUT 为强 1 输出接在外部电路的 GND 上会怎样?会短路。那么这种情况下到底还是不是输出 1 呢,这个问题是典型的“自相矛盾”。对于理想电压源VCC,接在哪都得是 VCC,同样对于理想的地,谁接在上面都是 0V,短路情况下到底电压是多少伏,那要看 VCC 和 GND 哪个先“扛不住”了。 ??1) 当程序使得器件 1 输出强 0,器件 2 输出强 1,短路便发生了,是否会永久损坏硬件视短路持续时间的长短。 下拉电阻输出??下图所示为下拉电阻输出,该电路为强 1 弱 0 电路。 ??上图(b)的输出为强 1,无论 OUTPUT 接什么负载,均输出高电平 1。这就是强 1 弱 0 的由来。 上拉电阻输出??下图所示为上拉电阻输出,该电路为强 0 弱 1 电路。
MSP430 单片机的 IO 输出IO 的内部电阻??MSP430 单片机的内部电阻构造如下图所示:
注:芯片说明书中,PxOUT(PxREN)中的 x 代表端口号,如 P1 和 P2。PxOUT.y( ??MSP430 的 IO 口内部电阻与 5.3 节的“上拉输出”还是“下拉输出”本质不同,因为图腾柱输出并联上拉下拉电阻丝毫不会改变输出电平值!所以,MSP430 只有一种输出方式——图腾柱输出。
线与逻辑的实现
??注:宏定义是完全替换代码的意思,所以要注意分号的使用。 MSP430 单片机的 IO 输入中断IO 外部中断使用方法??高级单片机的全部 IO 口都带外部中断功能,比如 ARM 系列。MSP430 单片机只有 P1和 P2 口带外部中断功能。要使用外部中断,遵循以下步骤:
机械按键的消抖??如下图所示,机械按键按下和弹起时,会有毛刺干扰。在一次按键过程中,会有若干次下降沿,只有①是真正的按键事件。如何避免其他几次下降沿“中断”的影响呢?
Grace中配置GPIO点击GPIO模块,如Port P1, GPIO-Overview
介绍??MSP430器件最多可以实现八个数字I/O端口,即P1至Px。每个端口有八个I/O引脚。每个I/O引脚都可以单独配置为输入或输出方向,并且每个I/O线都可以单独读或写。端口P1和P2具有中断能力。在一些设备上有更多的中断能力的引脚。P1和P2 I/O线的每个中断可以单独启用和配置,以便在输入信号的上升沿或下降沿提供中断。所有的P1 I/O线的来源是一个单一的中断向量,而所有的P2 I/O线的来源是一个不同的单一中断向量。 用例:端口引脚配置为输出方向??在引脚被配置为I/O功能和输出方向的情况下,每个PxOUT寄存器中的个别位代表相应I/O引脚的输出值。在这种模式下,内部上拉/下拉电阻被禁用。位=0时,输出被设置为低电平,位=1时,输出被设置为高电平。 ??Grace配置
??用户代码:
用例:端口引脚配置为输入方向??在引脚被配置为I/O功能和输入方向的情况下,每个PxIN寄存器中的个别位代表相应I/O引脚的输入值。PxIN寄存器是只读寄存器。位=0表示外部输入信号为低,位=1表示为高。 ??Grace配置
??用户代码:
用例:使用轮询对端口输入引脚进行事件捕获?? 端口引脚P1.5被配置为I/O功能,输入方向。P1.5被轮询,直到读取逻辑高电平作为输入电平。 ??Grace配置
??用户代码:
用例:使用中断对端口输入引脚进行事件捕获??端口P1和P2的每个引脚都有中断能力。每个PxIFGx位是其对应的I/O引脚的中断标志,当选定的输入信号边沿在该引脚发生时,该标志被置位。每个PxIFG端口的中断标志必须用软件复位。 ??Grace配置
??用户代码:
导航到
Pinout View模式框内为不同封装的配置视图 Pinout 32-QFNPinout 20-TSSOP/20-PDIPPinout 28-TSSOPPower User模式
??在这个Power User视图选择中,你可以将每个单独的GPIO引脚启用上拉/下拉电阻和/或使能上升/下降沿的GPIO中断启用。 ??中断处理程序的启用可以独立于中断启用。然而,当中断被启用时,中断处理程序会自动启用,以确保正确的运行时执行。要启用每个GPIO端口中断处理程序,请单击下面相应的处理程序按钮。 寄存器模式
??备注:通过启用中断处理程序,Grace在src文件夹下的InterruptVectors_init.c文件中生成了一个完全工作的中断服务程序。用户可以在ISR的指定区域内插入代码,并且代码被保留下来。当用户禁用中断处理程序时,用户插入的代码会保留在文件的底部,如果用户重新启用中断处理程序,会自动重新插入。当不再需要时,用户也可以手动删除这些代码。 上机实战??参照【MSP430G2553】图形化开发笔记(1) 配置环境建立工程。 目标??实现LED1闪烁,LED2由S1控制翻转。
配置Grace??配置电压: 编程main.c??主循环:以1s为周期闪烁D1:
InterruptVectors_init.c
现象烧录后可见LED1闪烁,LED2可由S1控制翻转。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 1:51:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |