历史上的今天
今天是: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)
//
----未完待续----
史海拾趣
|
2442 +wince 5.0 在kernal 起来一半,系统死机,死的地方每次还不一样,求肋! 各位大虾,小弟最近碰到一个死机的问题,偶然有那么几块板在开机的过程中会死机,一般都在kernal起来一半的样子,就停住了,而且每次停的地方还不一样,并且不是每次都会死机,开几十次有那么一两次的样子,所以这个问题非常的烦人。 另:我的产 ...… 查看全部问答> |
|
将文件上传到外部ftp server,发现小的文件上上传失败(几K左右的),稍大一点的文件可以上传。上传几K文件时,Server端打印上载失败,文件上传了一部分,但没全部上传。 代码流程大致如下: 1、获取文件长度lLen,分配内存 2、执行ftpxter 3、 ...… 查看全部问答> |
|
我有一块ARM的FL2440的板子,如果我要做个关于摄像头的程序(linux的),从市场上买一块主流的摄像头,像素稍微高点,然后是USB2.0的,希望采集图像在LCD中显然,那么是不是载一个万能驱动配置下,然后参考一些教程写个应用程序,就可以了呢?还需 ...… 查看全部问答> |
|
我的DIY已经基本完成,后面将抽时间晒晒作品了。。。 [ 本帖最后由 zhaojun_xf 于 2011-8-8 13:49 编辑 ]… 查看全部问答> |




