火龙果(redpitaya)开发板常用接口C语言开发指南(四)——读取数字IO状态(持续更新中)

火龙果(redpitaya)开发板常用接口C语言开发指南(四)——读取数字IO状态(持续更新中)


——本人为《火龙果实战指南——搭建基于Zynq处理器的测量仪器与创新实践平台》一书的作者之一,为了便于各位快速上手火龙果开发板,现提供部分实战指南,包含环境配置、源码、效果等,供大家学习交流使用。

本节将会介绍怎么读取火龙果开发板提供的数字接口的状态,并通过LED量灭以及串口打印方式呈现出来,要从数字IO脚读取状态数据,我们首先需要找到数字IO脚的位置。查阅火龙果开发板接口原理图(如图1所示),可知E1扩展口3-18均为数字IO脚,对应开发板位置(如图2所示)可知数字IO具体位置,找到对应的IO脚,才能进行相应的操作。
图1
图1
在这里插入图片描述
图2
连接开发板并在项目文件夹redpitaya下创建DioControlLed.c文件,写入如下代码:
在这里插入图片描述
库函数讲解
int rp_Init():初始化库。在其他库之前,必须先调用它,如果函数成功,返回值是rp_ok,如果函数不成功,返回值为rp_e中任意一个即代表错误发生。
int rp_DpinSetDirection(rp_dpin_t pin, rp_pinDirection_t direction):设置数字IO脚为输入还是输出,LED引脚已自动设置为输出且不能将它们设置为输入,diox_p和diox_n在使用之前都必须设置采用输入或者输出。pin参数设置数字引脚编号,direction参数设置引脚输入或输出状态。如果函数成功,返回值是rp_ok,如果函数不成功,返回值为rp_e
中任意一个即代表错误发生。
int rp_DpinGetState(rp_dpin_t pin, rp_pinState_t* state):获得数字输入输出引脚状态,pin参数设置数字引脚编号,state参数是指定的引脚的高低状态。如果函数成功,返回值是rp_ok,如果函数不成功,返回值为rp_e中任意一个即代表错误发生。
int rp_DpinSetState(rp_dpin_t pin, rp_pinState_t state):设置数字IO脚高低状态,pin参数设置数字引脚编号,state参数是给指定的引脚设置的高低状态。如果函数成功,返回值是rp_ok,如果函数不成功,返回值为rp_e
中任意一个即代表错误发生。
rp_Release():释放库资源,库不再使用之后放在最后,通常放在应用程序最后。如果函数成功,返回值是rp_ok,如果函数不成功,返回值为rp_e*中任意一个即代表错误发生。
编译参考命令:

make DioControlLed
cat /opt/redpitaya/fpga/fpga_0.94.bit > /dev/xdevcfg
LD_LIBRARY_PA TH=/opt/redpitaya/lib ./ DioControlLed

此时程序开始运行,初始状态开发板LED[0]-LED[7]全亮,串口没有打印输出,如图3、4所示。此时我们将DIO4脚与GND短接,发现此时LED4,即为从左到右第五个灯熄灭,此时串口打印输出DIO[4] = 0,如图5、6所示。这意味着通过数字IO读取状态并设置LED脚状态两个功能的实现。在这里插入图片描述
图3
在这里插入图片描述
图4
在这里插入图片描述
图5
在这里插入图片描述
图6

至此,读者应该已经完全掌握了数字IO的控制以及读取功能,具体应用可根据实际项目需求进行开发。

猜你喜欢

转载自blog.csdn.net/qq_38470434/article/details/106016949