《2022年CSL学习笔记第八章GPIO模块 .pdf》由会员分享,可在线阅读,更多相关《2022年CSL学习笔记第八章GPIO模块 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章GPIO 模块8.1 概述通过 GPIO 模块的设计以允许对C55x 器件中可用的非复用和地址GPIO 引脚的核心控制。以下三个表格列出了该模块有关的函数,寄存器和宏定义。表 8-1 GPIO 函数GPIO_pinDirection 设置 GPIO 引脚为输入或者输出GPIO_pinDisable 禁止一个引脚作为GPIO 引脚GPIO_pinEnable 使能一个引脚作为GPIO 引脚GPIO_pinRead 读 GPIO 引脚的值GPIO_pinWrite 向 GPIO 引脚写值下面的函数是C5501 和 C5502 器件所支持。GPIO_colse 释放一个或多个GPIO 引脚GP
2、IO_config 配置 GPIO 引脚GPIO_open 分配一个或多个GPIO 引脚到当前进程中GPIO_pinReadAll 读一个或多个引脚的值GPIO_pinWriteAll 写一个或多个引脚GPIO_pinReset 复位一个或多个引脚表 8-2 GPIO 寄存器IODIR IO7DIR, IO6DIR, IO5DIR, IO4DIR, IO3DIR, IO2DIR, IO1DIR, IO0DIR IODATA IO7D, IO6D, IO5D, IO4D, IO3D, IO2D, IO1D, IO0D C5509 and C5509A 支持以下 . AGPIOEN IO13, I
3、O12, IO11, IO10, IO9, IO8 AGPIODIR IO13DIR, IO12DIR, IO11DIR, IO10DIR, IO9DIR, IO8DIR AGPIODATA IO13D, IO12D, IO11D, IO10D, IO9D, IO8D C5502 和 C5501 支持以下 . PGPIOEN0 IO15EN, IO14EN, IO13EN, IO12EN, IO11EN, IO10EN, IO9EN, IO8EN, 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,
4、共 12 页 - - - - - - - - - - IO7EN, IO6EN, IO5EN, IO4EN, IO3EN, IO2EN, IO1EN, IO0EN PGPIODIR0 IO15DIR, IO14DIR, IO13DIR, IO12DIR, IO11DIR, IO10DIR, IO9DIR, IO8DIR, IO7DIR, IO6DIR, IO5DIR, IO4DIR, IO3DIR, IO2DIR, IO1DIR PGPIODAT0 IO15DA T, IO14DAT, IO13DAT, IO12DA T, IO11DAT, IO10DAT, IO9DAT, IO8DAT, I
5、O7DAT, IO6DAT, IO5DAT, IO4DAT, IO3DAT, IO2DAT, IO1DAT, IO0DAT PGPIOEN1 IO31EN, IO30EN, IO29EN, IO28EN, IO27EN, IO26EN, IO25EN, IO24EN, IO23EN, IO22EN, IO21EN, IO20EN, IO19EN, IO18EN, IO17EN, IO16EN PGPIODIR1 IO31DIR, IO30DIR, IO29DIR, IO28DIR, IO27DIR, IO26DIR, IO25DIR, IO24DIR, IO23DIR, IO22DIR, IO
6、21DIR, IO20DIR, IO19DIR, IO18DIR, IO17DIR, IO16DIR PGPIODAT1 IO31DA T, IO30DAT, IO29DAT, IO28DA T, IO27DAT, IO26DAT, IO25DA T, IO24DA T, IO23DAT, IO22DAT, IO20DA T, IO19DAT, IO18DAT, IO17DA T, IO16DA T PGPIOEN2 IO45EN, IO44EN, IO43EN, IO42EN, IO41EN, IO40EN, IO39EN, IO38EN, IO37EN, IO36EN, IO35EN, I
7、O34EN, IO33EN, IO32EN PGPIODIR2 IO45DIR, IO44DIR, IO43DIR, IO42DIR, IO41DIR, IO40DIR, IO39DIR, IO38DIR, IO37DIR, IO36DIR, IO35DIR, IO34DIR, IO33DIR, IO32DIR PGPIODAT2 IO45DA T, IO44DAT, IO43DAT, IO42DA T, IO41DAT, IO40DAT, IO39DA T, IO38DA T, IO37DAT, IO36DAT, IO35DA T, IO34DAT, IO33DAT, IO32DA T 8.
8、2 配置结构体以下是建立GPIO 的配置结构体GPIO_Config( 非并行 GPIO 引脚配置结构体) 成员列表:Uint16 ioen 引脚使能寄存器IOEN Uint16 iodir 引脚方向寄存器IODIR 说明:建立非并行GPIO 引脚的 GPIO 配置结构体 .创建并初始化该结构体,接着向GPIO_config() 函数船体其地址。你可以通过使用文本值或者GPIO_RMK宏来创建结构体成员值。GPIO_ConfigAll (并行和非并行GPIO 引脚的配置结构体)说明: GPIO 配置结构体是用于建立并行和非并行GPIO 引脚, .创建并初始化该结构体,接着向GPIO_confi
9、gAll()函数船体其地址。你可以通过使用文本值或者GPIO_RMK宏来创建结构体成员值。成员列表:Uint16 ioen 非并行引脚使能寄存器IOEN Uint16 iodir 非并行 GPIO 引脚方向寄存器IODIR Uint16 pgpioen 并行 GPIO 引脚使能寄存器0 PGPIOEN0 Uint16 pgpiodir 并行 GPIO 引脚方向寄存器0 PGPIODIR0 Uint16 pgpioen1 并行 GPIO 引脚使能寄存器1 PGPIOEN1 Uint16 pgpiodir1 并行 GPIO 引脚方向寄存器1 PGPIODIR1 Uint16 pgpioen2 并行
10、 GPIO 引脚使能寄存器2 PGPIOEN2 Uint16 pgpiodir2 并行 GPIO 引脚方向寄存器2 PGPIODIR2 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 12 页 - - - - - - - - - - 8.3 函数以下的函数被C5502 和 C5501 支持。GPIO_close (释放先前被GPIO_open 所占用的GPIO 引脚 ) 函数Void GPIO_(GPIO_Handle hGpio); 参数hGpio GPIO 引脚句柄(参见GPIO_open
11、() )返回值None 说明释放先前被GPIO_open 所占用的 GPIO 引脚。实例GPIO_close(hGpio); GPIO_open (为单独使用占用GPIO) 函数GPIO_Handle GPIO_open(Uint32 allocMask,Uint32 flags); 参数allocMask 占用的 GPIO 引脚,可以参见GPIO_pinDirection 查看可用的引脚。flags 打开标志,当前未指定。返回值GPIO_Handle 器件句柄说明在一个 GPIO 引脚被使用前,必须要被该应用程序占用,一旦被占用了,就不会在响应其他的请求,直到被 GPIO_close() 关
12、闭。 返回值是一个唯一的器件句柄,该句柄用于随后的API 调用中的 GPIO 中。如果函数出错返回INV(-1) 。对于 C5502 和 C5501,有四组 GPIO 引脚(见GPIO_pinDirection() )在调用了GPIO_open() 的同一时刻只能打开一组中的一个或几个引脚,在不同组中多次调用引脚的allocMask 会产生未知结果。例 如 : GPIO_open() 第 一 个 参 数 是 同 一 组 的 ( GPIO_GPIO_PIN4|GPIO_GPIO_PIN2 ) ,但是 (GPIO_GPIO_PIN4 | GPIO_PGPIO_PIN2)就会产生未知结果。如果 GP
13、IO_open()在一个组中被调用了,在GPIO_close 被调用前,它就不能再次调用来打开同组的其他引脚。然而,GPIO_open()可以在此时被调用来打开其他组的引脚。例如:如果 GPIO_open()第一次调用了GPIO_GPIO_PIN4 ,他就不能再被调用打开同组的的GPIO_GPIO_PIN2, 但是可以打开GPIO_PGPIO_PIN2. 实例GPIO_Handle hGpio; hGpio = GPIO_open(GPIO_PGPIO_PIN1,0); GPIO_config (向非并行寄存器写入值) 函数void GPIO_config(GPIO_Handle hGpio,
14、GPIO_Config *cfg); 参数hGpio GPIO 器件句柄Cfg 初始化配置寄存器的指针返回值无说明使用配置结构体向非并行GPIO 控制寄存器写入值。注意: GPIO_Config 结构体对于GPIOhe PGPIO 是通用的, 但 GPIO_config() 函数只对使能的GPIO0:7.( The GPIO_config() function just discards the enable field in case of GPIO 0:7 pins.)实例GPIO_Handle hGpio ; GPIO_Config myConfig = GPIO_PIN1_OUTPUT
15、 | GPIO_PIN3_OUTPUT 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 12 页 - - - - - - - - - - 对 5501 和 5502 的配置hGpio = GPIO_open (GPIO_GPIO_PIN1|GPIO_GPIO_PIN3,0) GPIO_config(hGpio &myconfig); GPIO_configAll (向并行和非并行GPIO 控制寄存器写入值) 函数void GPIO_config(GPIO_ConfigAll&gCfg) 参数g
16、Cfg 上电和掉电非复用GPIO 引脚的配置结构体返回值无说明向并行和非并行GPIO 控制寄存器写入值,用法参见GPIO_ConfigAll 实例GPIO_ConfigAll gCfg = GPIO_PIN1_OUTPUT|GPIO_PIN3_OUTPUT, /*IODIR*/ 0,/*PGPIOEN0*/ 0,/*PGPIODIR0*/ 0,/*PGPIOEN1*/ 0,/*PGPIODIR1*/ 0,/*PGPIOEN2*/ 0,/*PGPIODIR2*/ ; /*5501 和 5502 的 gpio 配置 */ GPIO_configAll(&gCfg); GPIO_pinDirecti
17、on( 设置 GPIO 为输入或者输出) 函数对于 C5501 和 C5502 void GPIO_pinDirection(GPIO_Handle hGpio,Uint32 pinMask,Uint16 direction); 对于 C5509/A 和 C5510 void GPIO_pinDirection(Uint32 pinMask,Uint16 direction); 参数hGpio 之前调用GPIO_open()返回的 GPIO 句柄。 (此参数只对C5501/2)pinMask 受方向影响的GPIO 引脚对于 5501/2,pinMask 可以是以下的:GPIO PinGroup
18、 0 ( 非并行 ):GPIO_GPIO_PIN0 GPIO_GPIO_PIN1 GPIO_GPIO_PIN2 GPIO_GPIO_PIN3 GPIO_GPIO_PIN4 GPIO_GPIO_PIN5 GPIO_GPIO_PIN6 GPIO_GPIO_PIN7 GPIO Pin Group 1 ( 并行 GPIO Pins 0-15): GPIO_PGPIO_PIN0 GPIO_PGPIO_PIN1 GPIO_PGPIO_PIN2 GPIO_PGPIO_PIN3 GPIO_PGPIO_PIN4 GPIO_PGPIO_PIN5 GPIO_PGPIO_PIN6 精品资料 - - - 欢迎下载 -
19、- - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 12 页 - - - - - - - - - - GPIO_PGPIO_PIN7 GPIO_PGPIO_PIN8 GPIO_PGPIO_PIN9 GPIO_PGPIO_PIN10 GPIO_PGPIO_PIN11 GPIO_PGPIO_PIN12 GPIO_PGPIO_PIN13 GPIO_PGPIO_PIN14 GPIO_PGPIO_PIN15 GPIO Pin Group 2 ( 并行 GPIO Pins 16-31): GPIO_PGPIO_PIN16 GPIO_PGPIO_
20、PIN17 GPIO_PGPIO_PIN18 GPIO_PGPIO_PIN19 GPIO_PGPIO_PIN20 GPIO_PGPIO_PIN21 GPIO_PGPIO_PIN22 GPIO_PGPIO_PIN23 GPIO_PGPIO_PIN24 GPIO_PGPIO_PIN25 GPIO_PGPIO_PIN26 GPIO_PGPIO_PIN27 GPIO_PGPIO_PIN28 GPIO_PGPIO_PIN29 GPIO_PGPIO_PIN30 GPIO_PGPIO_PIN31 GPIO Pin Group 3 ( 并行 GPIO Pins 32-45): GPIO_PGPIO_PIN32
21、 GPIO_PGPIO_PIN33 GPIO_PGPIO_PIN34 GPIO_PGPIO_PIN35 GPIO_PGPIO_PIN36 GPIO_PGPIO_PIN37 GPIO_PGPIO_PIN38 GPIO_PGPIO_PIN39 GPIO_PGPIO_PIN40 GPIO_PGPIO_PIN41 GPIO_PGPIO_PIN42 GPIO_PGPIO_PIN43 GPIO_PGPIO_PIN44 GPIO_PGPIO_PIN45 pinMask可 以 是 单 独 的 某 个引 脚 或 者 是 同 组 几 个 引 脚 的 组 合 ( 例 如 :GPIO_PGPIO_PIN23| GPI
22、O_PGPIO_PIN30) 。direction pinMask 选定的引脚的方向标记精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 12 页 - - - - - - - - - - GPIO Pin Group 0 ( 非并行GPIO Pins): GPIO_GPIO_PIN0_OUTPUT GPIO_GPIO_PIN1_OUTPUT GPIO_GPIO_PIN2_OUTPUT GPIO_GPIO_PIN3_OUTPUT GPIO_GPIO_PIN4_OUTPUT GPIO_GPIO_PI
23、N5_OUTPUT GPIO_GPIO_PIN6_OUTPUT GPIO_GPIO_PIN7_OUTPUT GPIO_GPIO_PIN0_INPUT GPIO_GPIO_PIN1_INPUT GPIO_GPIO_PIN2_INPUT GPIO_GPIO_PIN3_INPUT GPIO_GPIO_PIN4_INPUT GPIO_GPIO_PIN5_INPUT GPIO_GPIO_PIN6_INPUT GPIO_GPIO_PIN7_INPUT GPIO Pin Group 1 ( 并行 GPIO Pins 0-15): GPIO_PGPIO_PIN0_OUTPUT GPIO_PGPIO_PIN1_
24、OUTPUT GPIO_PGPIO_PIN2_OUTPUT GPIO_PGPIO_PIN3_OUTPUT GPIO_PGPIO_PIN4_OUTPUT GPIO_PGPIO_PIN5_OUTPUT GPIO_PGPIO_PIN6_OUTPUT GPIO_PGPIO_PIN7_OUTPUT GPIO_PGPIO_PIN8_OUTPUT GPIO_PGPIO_PIN9_OUTPUT GPIO_PGPIO_PIN10_OUTPUT GPIO_PGPIO_PIN11_OUTPUT GPIO_PGPIO_PIN12_OUTPUT GPIO_PGPIO_PIN13_OUTPUT GPIO_PGPIO_PI
25、N14_OUTPUT GPIO_PGPIO_PIN15_OUTPUT GPIO_PGPIO_PIN0_INPUT GPIO_PGPIO_PIN1_INPUT GPIO_PGPIO_PIN2_INPUT GPIO_PGPIO_PIN3_INPUT GPIO_PGPIO_PIN4_INPUT GPIO_PGPIO_PIN5_INPUT GPIO_PGPIO_PIN6_INPUT GPIO_PGPIO_PIN7_INPUT GPIO_PGPIO_PIN8_INPUT GPIO_PGPIO_PIN9_INPUT 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师
26、归纳 - - - - - - - - - -第 6 页,共 12 页 - - - - - - - - - - GPIO_PGPIO_PIN10_INPUT GPIO_PGPIO_PIN11_INPUT GPIO_PGPIO_PIN12_INPUT GPIO_PGPIO_PIN13_INPUT GPIO_PGPIO_PIN14_INPUT GPIO_PGPIO_PIN15_INPUT GPIO Pin Group 2 ( 并行 GPIO Pins 16-31): GPIO_PGPIO_PIN16_OUTPUT GPIO_PGPIO_PIN17_OUTPUT GPIO_PGPIO_PIN18_OU
27、TPUT GPIO_PGPIO_PIN19_OUTPUT GPIO_PGPIO_PIN20_OUTPUT GPIO_PGPIO_PIN21_OUTPUT GPIO_PGPIO_PIN22_OUTPUT GPIO_PGPIO_PIN23_OUTPUT GPIO_PGPIO_PIN24_OUTPUT GPIO_PGPIO_PIN25_OUTPUT GPIO_PGPIO_PIN26_OUTPUT GPIO_PGPIO_PIN27_OUTPUT GPIO_PGPIO_PIN28_OUTPUT GPIO_PGPIO_PIN29_OUTPUT GPIO_PGPIO_PIN30_OUTPUT GPIO_PG
28、PIO_PIN31_OUTPUT GPIO_PGPIO_PIN16_INPUT GPIO_PGPIO_PIN17_INPUT GPIO_PGPIO_PIN18_INPUT GPIO_PGPIO_PIN19_INPUT GPIO_PGPIO_PIN20_INPUT GPIO_PGPIO_PIN21_INPUT GPIO_PGPIO_PIN22_INPUT GPIO_PGPIO_PIN23_INPUT GPIO_PGPIO_PIN24_INPUT GPIO_PGPIO_PIN25_INPUT GPIO_PGPIO_PIN26_INPUT GPIO_PGPIO_PIN27_INPUT GPIO_PG
29、PIO_PIN28_INPUT GPIO_PGPIO_PIN29_INPUT GPIO_PGPIO_PIN30_INPUT GPIO_PGPIO_PIN31_INPUT GPIO Pin Group 3 ( 并行 GPIO Pins 32-45): GPIO_PGPIO_PIN32_OUTPUT GPIO_PGPIO_PIN33_OUTPUT GPIO_PGPIO_PIN34_OUTPUT GPIO_PGPIO_PIN35_OUTPUT 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 12 页
30、 - - - - - - - - - - GPIO_PGPIO_PIN36_OUTPUT GPIO_PGPIO_PIN37_OUTPUT GPIO_PGPIO_PIN38_OUTPUT GPIO_PGPIO_PIN39_OUTPUT GPIO_PGPIO_PIN40_OUTPUT GPIO_PGPIO_PIN41_OUTPUT GPIO_PGPIO_PIN42_OUTPUT GPIO_PGPIO_PIN43_OUTPUT GPIO_PGPIO_PIN44_OUTPUT GPIO_PGPIO_PIN45_OUTPUT GPIO_PGPIO_PIN32_INPUT GPIO_PGPIO_PIN33
31、_INPUT GPIO_PGPIO_PIN34_INPUT GPIO_PGPIO_PIN35_INPUT GPIO_PGPIO_PIN36_INPUT GPIO_PGPIO_PIN37_INPUT GPIO_PGPIO_PIN38_INPUT GPIO_PGPIO_PIN39_INPUT GPIO_PGPIO_PIN40_INPUT GPIO_PGPIO_PIN41_INPUT GPIO_PGPIO_PIN42_INPUT GPIO_PGPIO_PIN43_INPUT GPIO_PGPIO_PIN44_INPUT GPIO_PGPIO_PIN45_INPUT 方向可以使用任何上面定义过的符号常
32、量来设置,同组的多个引脚可以用或操作进行设置比如:GPIO_PGPIO_PIN45_INPUT | GPIO_PGPIO_PIN40_OUTPUT 返回值无说明设置一个或多个GPIO 的方向实例/*设置 pgpio 为输入 */ GPIO_handle hGpio = GPIO_openGPIO_PGPIO_PIN1|GPIO_PGPIO_PIN15; GPIO_pinDirection(hGpio,GPIO_PGPIO_PIN1_INPUT) ; GPIO_pinDisable. (禁止一个引脚作为GPIO 引脚 ) 函数对于 5501/2: Void GPIO_pinDisable(GPI
33、O_Handle hGpio,Uint32 pinId) 对于 5509/a,5510:Void GPIO_pinDisable(Uint32 pinId) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL)pinId 禁止的引脚,参见GPIO_pinDirection() 查看引脚号。返回值无说明禁止一个或多个GPIO 引脚实例/*禁止 PGPIO1 作为 GPIO*/ GPIO_handle hGpio = GPIO_open ( GPIO_GPIO_PIN1|GPIO_GPIO_PIN15); 精品资料 - - - 欢迎下载 - - - - - -
34、 - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 12 页 - - - - - - - - - - GPIO_pinDisable(hGpio,GPIO_GPIO_PIN1); GPIO_pinEnable (使能一个引脚作为GPIO) 函数对于 5501/2: Void GPIO_pinEnable(GPIO_Handle hGpio,Uint32 pinId) 对于 5509/A,5510:Void GPIO_pinEnable(Uint32 pinId) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL
35、)pinId 使能的引脚,参见GPIO_pinDirection() 查看引脚号。返回值无说明使能一个GPIO 引脚实例GPIO_pinEnable(hGpio,GPIO_GPIO_PIN1) GPIO_pinRead ( 读 GPIO 引脚值 ) 函数对于 5501/2: int GPIO_pinRead(GPIO_Handle hGpio,Uint32 pinId) 对于 5509/A,5510: int GPIO_pinRead(Uint32 pinId) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL )pinId 要读的引脚返回值读出的值(
36、0 或 1)说明读输入引脚的值实例int val;val = GPIO_pinRead(hGpio,GPIO_GPIO_PIN1); GPIO_pinReadAll( 从一个或多个GPIO 引脚上读回值) 函数对于 5501/5502: Int GPIO_pinReadAll(GPIO_Handle hGpio,Uint32 pinMask); 对于 5509/A,5510 :Int GPIO_pinReadAll(Uint32 pinMask) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL)pinMask 要读的 GPIO 引脚号,参见GPIO_p
37、inDirection() 查看引脚号返回值value 读出的 GPIO 引脚值说明读出 pinMask 指定的 GPIO 引脚的值。(该函数返回代替引脚的值,. The function returns the value in place of the pins. It does not right-justify the value to return a raw result.)实例int val;/*读 IO0 和 IO7 引脚的值 */ val = GPIO_pinReadAll(hGpio,GPIO_GPIO_PIN0|GPIO_GPIO_PIN7); GPIO_pinWrite
38、( 向一个 GPIO 引脚写入值 ) 函数对于 5501/2:Void GPIO_pinWrite(GPIO_Handle hGpio ,Uint32 pinMask ,Uint16 val) 对于 5509/A,5510 :Void GPIO_pinWrite(Uint32 pinMask,Uint16 val) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 12 页 - - - - - - - - - - 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2
39、CSL )pinMask 要写的 GPIO 引脚号,参见GPIO_pinDirection() 查看引脚号val 向 GPIO 引脚写入的值(0 或 1)返回值无说明向 GPIO 输出引脚写入值。实例/*向 pin0 和 pin5 写入 1*/ GPIO_pinWrite (hGpio,GPIO_GPIO_PIN0|GPIO_GPIO_PIN5,1) GPIO_pinWriteAll ( 向一个或者多个GPIO 引脚写入值 ) 函数对于 C5502 and C5501: void GPIO_pinWriteAll(GPIO_Handle hGpio,Uint32 pinMask, Uint16
40、 val) 对于 C5509/C5509A/C5510: void GPIO_pinWriteAll(Uint32 pinMask, Uint16 val) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL )pinMask 要写的 GPIO 引脚号,参见GPIO_pinDirection() 查看引脚号。val 向 GPIO 引脚写入的值(0 或 1)返回值无说明向一个或多个输出GPIO 引脚写入值,( Ths function assumes an in-place value mask for writing to the GPIO pins. I
41、t will not left-justify values. )实例/*向 pin0 和 pin5 写入 1*/ GPIO_pinWrite All(hGpio,GPIO_GPIO_PIN0|GPIO_GPIO_PIN5,1) GPIO_pinReset (复位 GPIO 引脚为默认值 ) 函数void GPIO_pinReset(GPIO_Handle hGpio ,Uint pinMask) 参数hGpio 由 GPIO_open 返回的 GPIO 句柄(仅对5501/2 CSL )pinMask 要写的 GPIO 引脚号,参见GPIO_pinDirection() 查看引脚号。返回值无
42、说明重置所选的GPIO 引脚到默认的值0 实例/* writes 1 to IO pin1 and IO pin 3 */ GPIO_pinReset (hGpio, GPIO_GPIO_PIN1 | GPIO_GPIO_PIN3); 8.4 GPIO CSL 宏A)读写 GPIO 寄存器的宏GPIO_RGET() Uint16 GPIO_RGET( REG) GPIO_RSET() void GPIO_RSET( REG,Uint16 regval) B) 读写 GPIO 寄存器字段的宏(只对有超过一个字段的寄存器)GPIO_FGET() Uint16 GPIO_FGET( REG,FIEL
43、D ) GPIO_FSET() void GPIO_FSET( REG,FIELD,Uint16 fieldval ) C) 创建 GPIO 寄存器和字段值的宏(只对有超过一个字段的寄存器)GPIO_REG_RMK() Uint16 GPIO_REG_RMK( fieldval_n,.,fieldval_0 ) 注意: *Start with field values with most significant field positions: field_n: MSB field 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - -
44、- - - - - -第 10 页,共 12 页 - - - - - - - - - - field_0: LSB field *only writable fields allowed GPIO_FMK() Uint16 GPIO_FMK( REG,FIELD,fieldval ) D) 读寄存器地址的宏GPIO_ADDR() Uint16 GPIO_ADDR( REG) Notes: 1) REG include the registers IODIR, IODATA, GPIODIR, GPIODATA, GPIOEN, AGPIODIR, AGPIODATA, and AGPIOEN.
45、 2) FIELD indicates the register field name For REG_FSET and REG_FMK, FIELD must be a writable field. For REG_FGET, the field must be a readable field. 3) regval indicates the value to write in the register (REG). 4) fieldval indicates the value to write in the field (FIELD). 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 12 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 12 页 - - - - - - - - - -