历史上的今天
返回首页

历史上的今天

今天是:2025年04月05日(星期六)

2020年04月05日 | MSP432--GPIO IAR环境

2020-04-05 来源:eefocus

GPIO
1.特点:众多的独立可编程I/O口
任意端口的输入输出组合
中断
独立的输入输出寄存器
独立可配置的上拉下拉寄存器

2.分布:总共有P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 PJ
P1-P10共78个I/O,PJ有6个I/O
P1.0,P1.4,P1.5,P3.0,P3.4,P3.5,P6.6,P6.7自带硬件滤波,消抖
P1.2-->BSLRXD  P1.3-->BSLTXD
SPI引脚:P1.4-->BSLSTE P1.5-->BSLCLK P1.6-->BSLSIMO P1.7-->BSLSOMI
IIC引脚:P3.6-->BSLSDA P3.7-->BSLSCL
总共100引脚 ZXH封装

PS:在库函数里出现PA,PB,PC,PD,分别代表P1/P2,P3/P4,P5/P6,P7/P8

3.库函数说明:固件库内总共有20个相关函数
(1)void GPIO_clearInterruptFlag( uint_fast8_t selectedPort,
uint_fast16_t selectedPins)//清除选中引脚的中断标志,ONLY P1和P2口上
   selectedPort:GPIO_PORT_P1
                      GPIO_PORT_P2
                      GPIO_PORT_PA//可输入的内容
   selectedPins:GPIO_PIN0
                      GPIO_PIN1
                      GPIO_PIN2
                      GPIO_PIN3
                      GPIO_PIN4
                      GPIO_PIN5
                      GPIO_PIN6
                      GPIO_PIN7
                      GPIO_PIN8
                      GPIO_PIN9
                      GPIO_PIN10
                      GPIO_PIN11
                      GPIO_PIN12
                      GPIO_PIN13
                      GPIO_PIN14
               GPIO_PIN15
Returns None

例:GPIO_clearInterruptFlag(GPIO_PORT_P1,GPIO_PIN0);//清除P1.0的中断标志

(2)void GPIO_disableInterrupt(uint_fast8_t selectedPort,uint_fast16_t selectedPins)//禁用所选取引脚的中断,ONLY P1和P2
   selectedPort:
   selectedPins:
   Returns: //同函数(1)

(3)void GPIO_enableInterrupt(uint_fast8_t selectedPort,uint_fast16_t selectedPins)//启用所选引脚的中断,ONLY P1和P2
   selectedPort:
   selectedPins:
   Returns://同函数(1)

(4)uint_fast16_t GPIO_getEnabledInterruptStatus(uint_fast8_t selectedPort)//
                                                                          //L838 gpio.h
   selectedPort:GPIO_PORT_P1
                      GPIO_PORT_P2
                      GPIO_PORT_P3
                      GPIO_PORT_P4
                      GPIO_PORT_P5
                      GPIO_PORT_P6
         GPIO_PORT_P7
         GPIO_PORT_P8
         GPIO_PORT_P9
         GPIO_PORT_P10
         GPIO_PORT_PJ
  Return:GPIO_PIN0
      GPIO_PIN1
      GPIO_PIN2
      GPIO_PIN3
      GPIO_PIN4
        GPIO_PIN5
      GPIO_PIN6
      GPIO_PIN7
      GPIO_PIN8
          GPIO_PIN9
      GPIO_PIN10
      GPIO_PIN11
        GPIO_PIN12
      GPIO_PIN13
      GPIO_PIN14
      GPIO_PIN15
       PIN_ALL8
         PIN_ALL16 //默认返回0

(5)uint8_t GPIO_getInputPinValue(uint_fast8_t selectedPort
     ,uint_fast16_t selectedPins)//获取被选择引脚的输入状态
  selectedPort://同(4)
  selectedPins:
  Returns:GPIO_INPUT_PIN_HIGH //1
         GPIO_INPUT_PIN_LOW //O

(6)uint_fast16_t GPIO_getInterruptStatus(uint_fast8_t selectedPort
            ,uint_fast16_t selectedPins)//获取P1和P2端口的
                                                    //中断状态,与(4)不同
   selectedPort:
   selectedPins://同(1)
   Return://同(4),无PIN_ALL8 和PIN_ALL16

(7)void GPIO_interruptEdgeSelect(uint_fast_t selectedPort,uint_fast16_t selectedPins,uint_fast8_t edgeSelect) //选择引脚,确定
                                      //是上升沿触发中
                                      //断还是下降沿
   Return:GPIO_HIGH_TO_LOW_TRANSITION
          GPIO_LOW_TO_HIGH_TRANSITION

(8)void GPIO_registerInterrupt(uint_fast8_t selectedPort,void(*)(void) intHandler)//


(9)void GPIO_setAsInputPin(uint_fast8_t selectedPort ,uint_fast16_t selectedPins)        //配置选择的引脚
                             //为输入,相当于
                             //P1DIR &=~

(10)void GPIO_setAsInputPinWithPullDownResistor(uint_fast8_t selectedPort
       uint_fast16_t selectedPins)
                               //配置选择的引脚
                                //为下拉

(11)void GPIO_setAsInputPinWithPullUpResistor(uint_fast8_t selectedPort
       uint_fast16_t selectedPins)
                               //配置选择的引脚
                               //为上拉

(12)void GPIO_setAsOutputPin(uint_fast8_t selectedPort
      ,uint_fast16_t selectedPins)
                               //配置选择的引脚
                               //为输出

(13)void GPIO_setAsPeripheralModuleFunctionInputPin(uint_fast8_t selectedPort,
       uint_fast16_t selectedPins,uint_fast8_t mode)
                                //选择引脚的功能位
                               //第一功能,第二功
                              //能,第三功能,输入

(14) void GPIO_setAsPeripheralModuleFunctionOutputPin ( uint_fast8_t selectedPort, uint_fast16_t selectedPins, uint_fast8_t mode )
                             //选择引脚的功能位
                             //第一功能,第二功
                             //能,第三功能,输出
(15)void GPIO_setDriveStrengthHigh(uint_fast8_t selectedPort
      ,uint_fast8_t selectedPins)
         //

----未完待续----

推荐阅读

史海拾趣

Alpha-Micro Electronics公司的发展小趣事

Alpha-Micro Electronics是一家提供嵌入式系统解决方案的公司,专注于设计和制造微控制器、传感器和其他嵌入式设备。以下是关于Alpha-Micro Electronics公司发展的五个相关故事:

  1. 公司成立:Alpha-Micro Electronics公司成立于1982年,总部位于德国斯图加特。公司的创始人是一群电子工程师,他们致力于为各种应用领域提供高性能的嵌入式系统解决方案。

  2. 技术创新:在公司创立之初,Alpha-Micro Electronics就开始致力于技术创新。他们不断投资于研发,推出了一系列先进的微控制器和传感器产品,以满足客户对功能强大和性能稳定的需求。

  3. 解决方案定制:Alpha-Micro Electronics公司注重与客户的紧密合作,提供定制化的解决方案。他们的工程团队具有丰富的经验和专业知识,能够根据客户的具体要求设计和制造符合其需求的嵌入式系统。

  4. 国际扩展:随着业务的不断发展,Alpha-Micro Electronics逐渐拓展了国际市场。除了在德国的总部和研发中心外,公司还在全球范围内建立了销售和服务网络,包括在美国、亚洲和欧洲的分支机构和合作伙伴。

  5. 行业合作与创新:Alpha-Micro Electronics公司积极参与行业合作和创新项目,与其他企业、研究机构和学术界合作,共同推动嵌入式技术的发展。通过与行业领先者合作,公司不断探索新的技术和应用领域,为客户提供更具竞争力的解决方案。

这些故事展示了Alpha-Micro Electronics公司在技术创新、解决方案定制、国际扩展和行业合作方面的发展历程,以及其在电子行业中的重要地位和影响力。

杰力(EMC)公司的发展小趣事

随着公司规模的扩大和产品线的丰富,杰力开始积极拓展市场。公司参加各类电子展会和论坛,与国内外客户建立联系和合作。同时,杰力还加强了品牌宣传和推广力度,通过媒体广告、网络营销等方式提高品牌知名度和美誉度。这些努力使得杰力的产品在国内外市场上获得了更广泛的认可和应用。

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

在高通的发展历程中,公司多次面临来自竞争对手的专利纠纷。面对这些挑战,高通积极应诉,通过长达数年的法律斗争,最终捍卫了自己的CDMA创新成果。这些胜利不仅彰显了高通在通信技术领域的深厚积累,也进一步巩固了其在行业中的技术领导地位。高通持续投入大量资源进行研发创新,确保了公司在全球蜂窝通信技术领域的领先地位。

Delta Electronics公司的发展小趣事

作为一家具有社会责任感的企业,Delta Electronics一直积极践行可持续发展理念。公司自2004年起,全球新建办公大楼、生产基地均依绿建筑工法设计建造。此外,公司还积极参与各类环保活动和社会公益事业,推动绿色能源和环保技术的发展。这些举措不仅有助于保护环境、减少污染,也提升了Delta的企业形象和品牌价值。

鸿展光电(GPO)公司的发展小趣事

Delta Electronics在电源管理技术方面一直处于行业领先地位。公司不断投入研发资源,推动电源技术的创新和进步。其中,Delta开发的高效率开关式电源供应器,以其高效、稳定和可靠的性能,赢得了全球客户的广泛认可。此外,公司还积极推广绿色能源和节能技术,为客户提供环保、节能的电源解决方案。

GTE Microcircuits公司的发展小趣事
学习高性能复合放大器电路的设计需要掌握模拟电路的基础知识,包括放大器的工作原理、电路分析方法、以及元器件的选择和使用等。此外,还需要通过阅读专业书籍、参加培训课程、以及实践项目等方式来不断积累经验和提高技能。

问答坊 | AI 解惑

易懂的单片机入门书籍

易懂的单片机入门书籍…

查看全部问答>

一个万年历程序

本人做的一个万年历程序. 在调节年,月,日,时,分,秒的时候,偶尔会出错.比如出现 H6,H7等一些非所要的十进制字符. 为什么呢? #include #define uint unsigned int #define uchar unsigned char uchar code table[]=\" 2008-10-12 MON\"; uch ...…

查看全部问答>

2442 +wince 5.0 在kernal 起来一半,系统死机,死的地方每次还不一样,求肋!

各位大虾,小弟最近碰到一个死机的问题,偶然有那么几块板在开机的过程中会死机,一般都在kernal起来一半的样子,就停住了,而且每次停的地方还不一样,并且不是每次都会死机,开几十次有那么一两次的样子,所以这个问题非常的烦人。 另:我的产 ...…

查看全部问答>

VxWorks Ftp Client问题求助,多谢!

将文件上传到外部ftp server,发现小的文件上上传失败(几K左右的),稍大一点的文件可以上传。上传几K文件时,Server端打印上载失败,文件上传了一部分,但没全部上传。 代码流程大致如下: 1、获取文件长度lLen,分配内存 2、执行ftpxter 3、 ...…

查看全部问答>

便携式缺氧监控电路

如图所示为便携式缺氧监控电路。该电路由氧传感器OS-12、直流放大器IC1、A/D变换器IC4、液晶显示器F2100-34PI、电压比较器IC2、正负电源变换器IC。等组成。OS-12为伽伐尼电池式氧传感器,检测空气中的氧气可输出约50mV的信号,且其在0~100%的氧 ...…

查看全部问答>

希望大家解决下我的疑惑,关于摄像头的

我有一块ARM的FL2440的板子,如果我要做个关于摄像头的程序(linux的),从市场上买一块主流的摄像头,像素稍微高点,然后是USB2.0的,希望采集图像在LCD中显然,那么是不是载一个万能驱动配置下,然后参考一些教程写个应用程序,就可以了呢?还需 ...…

查看全部问答>

基于ADE7757的智能电能计量系统(DIY完成)

我的DIY已经基本完成,后面将抽时间晒晒作品了。。。           [ 本帖最后由 zhaojun_xf 于 2011-8-8 13:49 编辑 ]…

查看全部问答>

430 与RF通信 电路 求指教

小弟冒昧请问 我分配了430f149的引脚给 RF模块(加*的是RF模块信号 不知道这么分配clk和数据收发端 能不能行啊  求指教   )…

查看全部问答>

瑞萨开发板例程+四旋翼飞行器资料+AD9850_AD9851_模块

最近搜集的资料一下汇总,内容包括 瑞萨开发板例程、四旋翼飞行器资料、AD9850_AD9851_模块…

查看全部问答>