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)


目录
相关文章
|
存储 调度 数据库
STM32--DMA
STM32--DMA
|
传感器 数据采集 存储
STM32--GPIO
STM32--GPIO
|
传感器 存储
STM32--EXTI外部中断
STM32--EXTI外部中断
|
3月前
看看FIQ和IRQ
看看FIQ和IRQ
38 0
|
5月前
|
Java 调度 C++
VirtualThread Pin的处理总结
VirtualThread Pin的处理总结
31 0
|
9月前
|
存储
STM32F103C8 GPIO
STM32F103C8 GPIO
107 0
|
10月前
|
移动开发 API
STM32使用HAL库操作GPIO
使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成
143 0
|
缓存 物联网 API
3_5_系统中断和 GPIO 操作|学习笔记
快速学习3_5_系统中断和 GPIO 操作。
129 0
3_5_系统中断和 GPIO 操作|学习笔记
|
物联网 开发工具 芯片
NUCLEO-L432KC实现GPIO控制(STM32L432KC)
NUCLEO-L432KC实现GPIO控制(STM32L432KC)
NUCLEO-L432KC实现GPIO控制(STM32L432KC)
stm32 GPIO 中断的使用
stm32 GPIO 中断的使用
1261 0