2022年2022年CSL学习笔记第八章GPIO模块_第1页
2022年2022年CSL学习笔记第八章GPIO模块_第2页
2022年2022年CSL学习笔记第八章GPIO模块_第3页
2022年2022年CSL学习笔记第八章GPIO模块_第4页
2022年2022年CSL学习笔记第八章GPIO模块_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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_col

2、se释放一个或多个gpio 引脚gpio_config配置 gpio 引脚gpio_open安排一个或多个gpio 引脚到当前进程中gpio_pinreadall读一个或多个引脚的值gpio_pinwriteall写一个或多个引脚gpio_pinreset复位一个或多个引脚表 8-2 gpio 寄存器iodirio7dir、 io6dir、 io5dir、 io4dir、 io3dir、 io2dir、 io1dir、 io0dir iodataio7d、 io6d、 io5d、 io4d、 io3d、 io2d、 io1d、 io0dc5509 and c5509a 支持以下 .agpioe

3、nio13、 io12、 io11、 io10、 io9、 io8agpiodirio13dir、 io12dir、 io11dir、 io10dir、 io9dir、 io8dir agpiodataio13d、 io12d、 io11d、 io10d、 io9d、 io8dc5502 和 c5501 支持以下 .pgpioen0io15en、 io14en、 io13en、 io12en、 io11en、 io10en、 io9en、 io8en、精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载io7en、 io6en、 io5en、 io4en、 io3en、 io2en、

4、 io1en、 io0enpgpiodir0io15dir、 io14dir、 io13dir、 io12dir、 io11dir、 io10dir、 io9dir、 io8dir、 io7dir、 io6dir、 io5dir、 io4dir、 io3dir、 io2dir、 io1dirpgpioda t0io15da t、 io14dat、 io13dat、 io12da t、 io11dat、 io10dat、 io9dat、 io8dat、 io7dat、 io6dat、 io5dat、 io4dat、 io3dat、 io2dat、 io1dat、 io0datpgpioen1io

5、31en、 io30en、 io29en、 io28en、 io27en、 io26en、 io25en、 io24en、 io23en、 io22en、 io21en、 io20en、 io19en、 io18en、 io17en、 io16enpgpiodir1 io31dir、 io30dir、 io29dir、 io28dir、 io27dir、 io26dir、 io25dir、 io24dir、 io23dir、 io22dir、 io21dir、 io20dir、 io19dir、 io18dir、 io17dir、 io16dirpgpioda t1 io31da t、 io3

6、0dat、 io29dat、 io28da t、 io27dat、 io26dat、 io25da t、 io24da t、 io23dat、 io22dat、 io20da t、 io19dat、 io18dat、 io17da t、 io16da tpgpioen2io45en、 io44en、 io43en、 io42en、 io41en、 io40en、 io39en、 io38en、 io37en、 io36en、 io35en、 io34en、 io33en、 io32enpgpiodir2io45dir、 io44dir、 io43dir、 io42dir、 io41dir、 i

7、o40dir、 io39dir、 io38dir、 io37dir、 io36dir、 io35dir、 io34dir、 io33dir、 io32dirpgpioda t2io45da t、 io44dat、 io43dat、 io42da t、 io41dat、 io40dat、 io39da t、 io38da t、 io37dat、 io36dat、 io35da t、 io34dat、 io33dat、 io32da t8.2 配置结构体以下为建立gpio 的配置结构体gpio_config 非并行 gpio 引脚配置结构体成员列表:uint16 ioen引脚使能寄存器ioen u

8、int16 iodir引脚方向寄存器iodir说明:建立非并行gpio引脚的 gpio 配置结构体 .创建并初始化该结构体,接着向gpio_config 函数船体其地址;你可以通过使用文本值或者gpio_rmk宏来创建结构体成员值;gpio_configall(并行和非并行gpio 引脚的配置结构体)说明:gpio 配置结构体为用于建立并行和非并行gpio 引脚, .创建并初始化该结构 体,接着向gpio_configall函数船体其地址;你可以通过使用文本值或者gpio_rmk宏来创建结构体成员值;成员列表:uint16 ioen非并行引脚使能寄存器ioenuint16 iodir非并行 g

9、pio 引脚方向寄存器iodiruint16 pgpioen并行 gpio 引脚使能寄存器0pgpioen0uint16 pgpiodir并行 gpio 引脚方向寄存器0pgpiodir0uint16 pgpioen1并行 gpio 引脚使能寄存器1pgpioen1uint16 pgpiodir1并行 gpio 引脚方向寄存器1pgpiodir1uint16 pgpioen2并行 gpio 引脚使能寄存器2pgpioen2uint16 pgpiodir2并行 gpio 引脚方向寄存器2pgpiodir2精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载8.3 函数以下的函数被c55

10、02 和 c5501 支持;gpio_close释放从前被gpio_open 所占用的gpio 引脚 函数void gpio_gpio_handle hgpio;参数hgpiogpio引脚句柄(参见gpio_open )返回值none说明释放从前被gpio_open 所占用的gpio 引脚;实例gpio_closehgpio;gpio_open为单独使用占用gpio函数gpio_handle gpio_openuint32 allocmask、uint32 flags;参数allocmask占用的 gpio 引脚,可以参见gpio_pindirection查看可用的引脚;flags打开标志,当

11、前未指定;返回值gpio_handle 器件句柄说明在一个 gpio 引脚被使用前,必需要被该应用程序占用,一旦被占用了,就不 会在响应其他的恳求,直到被 gpio_close 关闭; 返回值为一个唯独的器件句柄,该句柄用于随后的api 调用中的gpio 中;假如函数出错返回inv-1 ;对于 c5502 和 c5501,有四组 gpio引脚(见gpio_pindirection ) 在调用了gpio_open的同一时刻只能打开一组中的一个或几个引脚,在不同组中多次调用引脚的allocmask 会产生未知结果;例 如 : gpio_open 第 一 个 参 数 为 同 一 组 的 ( gpio

12、_gpio_pin4|gpio_gpio_pin2 ),但为 gpio_gpio_pin4 | gpio_pgpio_pin2就会产生未知结果;假如 gpio_open 在一个组中被调用了,在 gpio_close 被调用前,它就不能再次调用来打开同组的其他引脚;然而, gpio_open 可以在此时被调用来打开其他组的引脚;例如:假如gpio_open 第一次调用了gpio_gpio_pin4 ,他就不能再被调用打开同组的的gpio_gpio_pin2、 但为可以打开gpio_pgpio_pin2.实例gpio_handle hgpio;hgpio = gpio_opengpio_pgpio

13、_pin1、0;gpio_config向非并行寄存器写入值函数void gpio_configgpio_handle hgpio、gpio_config *cfg;参数hgpiogpio 器件句柄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_

14、handle hgpio ;gpio_config myconfig = gpio_pin1_output | gpio_pin3_output 精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载对 5501 和 5502 的配置hgpio = gpio_open gpio_gpio_pin1|gpio_gpio_pin3、0gpio_confighgpio &myconfig; gpio_configall向并行和非并行gpio 掌握寄存器写入值函数void gpio_configgpio_configall&gcfg参数gcfg上电和掉电非复用gpio 引脚的配

15、置结构体返回值无说明向并行和非并行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_pindirection 设置 gpio 为输入或者输出函数对于 c5501

16、和 c5502void gpio_pindirectiongpio_handle hgpio、uint32 pinmask、uint16 direction;对 于 c5509/a 和 c5510void gpio_pindirectionuint32 pinmask、uint16 direction;参数hgpio之前调用gpio_open 返回的 gpio 句柄;(此参数只对c5501/2)pinmask受方向影响的gpio 引脚 对于 5501/2, pinmask 可以为以下的: gpio pingroup 0 非并行 :gpio_gpio_pin0 gpio_gpio_pin1 gp

17、io_gpio_pin2 gpio_gpio_pin3 gpio_gpio_pin4 gpio_gpio_pin5 gpio_gpio_pin6 gpio_gpio_pin7gpio 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精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载gpio_pgpio_pin7 gpio_pgpio_pin8 gpio_

18、pgpio_pin9 gpio_pgpio_pin10 gpio_pgpio_pin11 gpio_pgpio_pin12 gpio_pgpio_pin13 gpio_pgpio_pin14 gpio_pgpio_pin15gpio pin group 2 并行gpio pins 16-31:gpio_pgpio_pin16 gpio_pgpio_pin17 gpio_pgpio_pin18 gpio_pgpio_pin19 gpio_pgpio_pin20 gpio_pgpio_pin21 gpio_pgpio_pin22 gpio_pgpio_pin23 gpio_pgpio_pin24

19、gpio_pgpio_pin25 gpio_pgpio_pin26 gpio_pgpio_pin27 gpio_pgpio_pin28 gpio_pgpio_pin29 gpio_pgpio_pin30 gpio_pgpio_pin31gpio pin group 3 并行 gpio pins 32-45:gpio_pgpio_pin32 gpio_pgpio_pin33 gpio_pgpio_pin34 gpio_pgpio_pin35 gpio_pgpio_pin36 gpio_pgpio_pin37 gpio_pgpio_pin38 gpio_pgpio_pin39 gpio_pgpio

20、_pin40 gpio_pgpio_pin41 gpio_pgpio_pin42 gpio_pgpio_pin43 gpio_pgpio_pin44 gpio_pgpio_pin45pinmask可 以 为 单 独 的 某 个 引 脚 或 者 为 同 组 几 个 引 脚 的 组 合 ( 例 如 :gpio_pgpio_pin23| gpio_pgpio_pin30);directionpinmask 选定的引脚的方向标记精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载gpio pin group 0 非并行gpio pins: gpio_gpio_pin0_output gpio

21、_gpio_pin1_output gpio_gpio_pin2_output gpio_gpio_pin3_output gpio_gpio_pin4_output gpio_gpio_pin5_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 gpi

22、o_gpio_pin7_inputgpio pin group 1 并行 gpio pins 0-15:gpio_pgpio_pin0_output gpio_pgpio_pin1_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_o

23、utput gpio_pgpio_pin11_output gpio_pgpio_pin12_output gpio_pgpio_pin13_output gpio_pgpio_pin14_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_inpu

24、t gpio_pgpio_pin8_input gpio_pgpio_pin9_input精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载gpio_pgpio_pin10_input gpio_pgpio_pin11_input gpio_pgpio_pin12_input gpio_pgpio_pin13_input gpio_pgpio_pin14_input gpio_pgpio_pin15_inputgpio pin group 2 并行 gpio pins 16-31:gpio_pgpio_pin16_output gpio_pgpio_pin17_output gpi

25、o_pgpio_pin18_output 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_pin3

26、0_output gpio_pgpio_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_pin

27、27_input gpio_pgpio_pin28_input gpio_pgpio_pin29_input gpio_pgpio_pin30_input gpio_pgpio_pin31_inputgpio pin group 3 并行 gpio pins 32-45:gpio_pgpio_pin32_output gpio_pgpio_pin33_output gpio_pgpio_pin34_output gpio_pgpio_pin35_output精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载gpio_pgpio_pin36_output gpio_pgpio_pin

28、37_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_input gpio_pgpio_pin34_input gpio_pgpio_pin35_input gpio_p

29、gpio_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方向可以使用任何上面定义过的符号常量来设置,同组的多个引脚可以用或操作进行设置比如:gpio_pgpio_pin45_input | gpio_pgpio

30、_pin40_output返回值无说明设置一个或多个gpio 的方向实例/* 设置 pgpio 为输入 */gpio_handle hgpio = gpio_opengpio_pgpio_pin1|gpio_pgpio_pin15; gpio_pindirectionhgpio、gpio_pgpio_pin1_input ;gpio_pindisable.禁止一个引脚作为gpio 引脚 函数对于 5501/2:void gpio_pindisablegpio_handle hgpio、uint32 pinid对于 5509/a,5510:void gpio_pindisableuint32 p

31、inid参数hgpio由 gpio_open 返回的 gpio 句柄(仅对5501/2 csl )pinid禁止的引脚,参见gpio_pindirection 查看引脚号;返回值无说明禁止一个或多个gpio 引脚实例/* 禁止 pgpio1 作为 gpio*/gpio_handle hgpio = gpio_open gpio_gpio_pin1|gpio_gpio_pin15;精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载gpio_pindisablehgpio、gpio_gpio_pin1; gpio_pinenable使能一个引脚作为gpio函数对于 5501/2:voi

32、d gpio_pinenablegpio_handle hgpio、uint32 pinid对于 5509/a、5510 :void gpio_pinenableuint32 pinid参数hgpio由 gpio_open 返回的 gpio 句柄(仅对5501/2 csl )pinid使能的引脚,参见gpio_pindirection 查看引脚号;返回值无说明使能一个gpio 引脚实例gpio_pinenablehgpio、gpio_gpio_pin1gpio_pinread 读 gpio 引脚值 函数对于 5501/2:intgpio_pinreadgpio_handle hgpio、uin

33、t32 pinid对于 5509/a、5510:int gpio_pinreaduint32 pinid参数hgpio由 gpio_open 返回的 gpio 句柄(仅对5501/2 csl )pinid 要读的引脚返回值 读出的值( 0 或 1) 说明 读输入引脚的值实例int val ;val = gpio_pinreadhgpio、gpio_gpio_pin1;gpio_pinreadall 从一个或多个gpio 引脚上读回值函数对于 5501/5502:int gpio_pinreadallgpio_handle hgpio、uint32 pinmask;对于 5509/a、5510

34、:int gpio_pinreadalluint32 pinmask参数hgpio 由 gpio_open 返回的 gpio 句柄(仅对5501/2 csl )pinmask要读的 gpio 引脚号,参见gpio_pindirection 查看引脚号返回值value 读出的 gpio 引脚值说明读出 pinmask 指定的 gpio 引脚的值;(该函数返回代替引脚的值,. the function returnsthe value in place of the pins. it does not right-justify the value to return a rawresult.)实

35、例int val ;/* 读 io0 和 io7 引脚的值 */val = gpio_pinreadallhgpio、gpio_gpio_pin0|gpio_gpio_pin7;gpio_pinwrite 向一个 gpio 引脚写入值 函数对于 5501/2 :void gpio_pinwritegpio_handle hgpio 、uint32 pinmask 、uint16 val对于 5509/a、5510 :void gpio_pinwriteuint32 pinmask、uint16 val精品学习资料精选学习资料 - - - 欢迎下载学习必备欢迎下载参数hgpio由 gpio_op

36、en 返回的 gpio 句柄(仅对5501/2 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_pinwriteallgpio_handle hgpio、uint32 pin

37、mask、 uint16 val对于 c5509/c5509a/c5510:void gpio_pinwritealluint32 pinmask、 uint16 val参数hgpio由 gpio_open 返回的 gpio 句柄(仅对5501/2 csl ) pinmask要写的 gpio 引脚号,参见gpio_pindirection 查看引脚号; val向 gpio 引脚写入的值(0 或 1)返回值无说明向一个或多个输出gpio 引脚写入值,( thsfunction assumesan in-placevaluemaskforwritingtothegpiopins.itwillnot left-justify values. )实例/* 向 pin0 和 pin5 写入 1*/gpio_pinwrite allhgpio、gpio_gpio_pin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论