get_gpio_attr()和read_gpio()

简介:

get_gpio_attr()和read_gpio()都可以用来对射频板的GPIO进行读取,只不过get_gpio_attr()处于比较顶层的位置,而read_gpio()更靠近底层。get_gpio_attr()在multi_usrp.hpp中声明;read_gpio()在sbx_commom.hpp中声明。

要读取GPIO的输出,get_gpio_attr()中提供了两种方式:OUT和READBACK。OUT只读取由用户控制的引脚输出;READBACK则全部读出。

read_gpio()读取GPIO的结果与get_gpio_attr()的READBACK读取结果相同,都是全部读取。

举例说明:

假设已经定义了USRP设备指针usrp和射频板接口iface,并将GPIO的第6bit和第7bit设置为用户控制:

iface->set_pin_ctrl(dboard_iface::UNIT_TX,TXIO_MASK);
iface->set_gpio_ddr(dboard_iface::UNIT_TX,(TXIO_MASK|RX_LED_IO));

并对发送单元的GPIO作了如下设置(第6bit为1,第7bit为0,此时射频板LED TX/RX亮):

iface->set_gpio_out(dboard_iface::UNIT_TX,TX_LED_LD,TX_LED_IO);

用上述两种方法去读取GPIO的值:

boost::uint32_t out=iface->read_gpio(dboard_iface::UNIT_TX);
std::cout<<out<<std::endl;
boost::uint32_t out1=usrp->get_gpio_attr("TXRX","OUT");
std::cout<<out1<<std::endl;
boost::uint32_t out2=usrp->get_gpio_attr("TXRX","READBACK");
std::cout<<out2<<std::endl

输出的结果分别为:16459(二进制0100000001001011)、64(二进制0000000001000000)和16459(二进制0100000001001011)


目录
相关文章
|
6月前
|
Java Android开发
Rockchip系列之客制化GPIO接口应用部分(5)
Rockchip系列之客制化GPIO接口应用部分(5)
62 0
|
6月前
|
存储 Android开发
Rockchip系列之客制化GPIO接口Driver部分(2)
Rockchip系列之客制化GPIO接口Driver部分(2)
114 0
|
6月前
|
Linux API Android开发
Rockchip系列之客制化GPIO接口Hardware部分(3)
Rockchip系列之客制化GPIO接口Hardware部分(3)
96 0
|
6月前
|
存储 调度 数据库
STM32--DMA
STM32--DMA
|
21天前
|
存储 数据管理 数据处理
处理STM32 DMA方式下的HAL_UART_ERROR_ORE错误
通过正确配置UART和DMA、实现有效的错误处理回调函数以及优化数据处理和缓冲区管理,可以有效处理STM32中DMA方式下的 `HAL_UART_ERROR_ORE`错误。这些方法确保了数据的高效传输和处理,避免了因数据溢出导致的通信中断和数据丢失。希望这些解决方案能够帮助您在实际应用中更好地应对和解决此类问题。
110 0
|
4月前
|
Linux
gpio_direction_output 和 gpio_set_value之间的关系
gpio_direction_output 和 gpio_set_value之间的关系
601 0
|
6月前
|
传感器 数据采集 存储
STM32--GPIO
STM32--GPIO
|
Java 调度 C++
VirtualThread Pin的处理总结
VirtualThread Pin的处理总结
74 0
|
传感器 人工智能 Linux
Jetson TX2 NX的GPIO引脚使用方式
Jetson TX2 NX的GPIO引脚使用方式
|
存储
STM32F103C8 GPIO
STM32F103C8 GPIO
173 0