400-007-3336
usrp_support@tnm-corad.com.cn

Visual Studio安装配置

参考文档

http://shannon.ece.ufl.edu:6528/index.php/Blog:Djgreene/Installing_UHD_and_Boost_in_Windows

安装Microsoft Visual Studio 2015

其中两个版本的下载地址:

企业版: https://www.microsoft.com/en-us/download/details.aspx?id=48143

社区版: https://www.microsoft.com/en-us/download/details.aspx?id=48146

各个版本任选其一。

按照C++开发的需要安装,在此不做详细介绍。

安装Boost

二进制安装包下载地址: 

https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-32.exe/download (32位)

https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-64.exe/download (64位)

本文选择以32位为例,因此Boost也选择32位的。

按照默认安装,安装路径是C:\local\boost_1_61_0 

安装UHD

下载地址 http://www.ettus.com.cn/Download/software/UHD.html

选择对应vs2015的VS2015后缀的版本,如本文选择了32位的对应vs2015的版本

http://www.ettus.com.cn/Download/software/uhd_win32_vs2015.html 下载后双击安装。

据称UHD的安装文件有bug,所以在选择是否添加环境变量这一步中,选择“Do not add UHD to the system PATH”。

这里安装路径这里选择默认(你也可以选择其他路径):

其余的步骤默认。

安装好之后的目录是这样的:

配置系统环境变量

在系统环境变量的PATH变量中增加UHD的bin目录,也就是我们安装UHD的目录下的bin目录,比如我们在上面的步骤中把UHD安装到了C:\Program Files (x86)\UHD中,然后选择里面的bin目录,增加到系统的PATH变量内,使得命令行下能方便地识别UHD的命令。

下面是设置环境变量的具体方法:

点击桌面左下角Windows按钮,在“计算机”按钮上点击右键,选择“属性”

在打开的窗口左边点“高级系统设置”

在弹出的“系统属性”窗口点击下方的“环境变量”按钮

在弹出的“环境变量”窗口中,选中下方“系统变量”列表中的“Path”变量,然后点击下方的“编辑”按钮,在”变量值”最后面加入新安装的UHD的bin目录的路径,C:\Program Files (x86)\UHD\bin,注意,在加入这个路径前,需要在原来的路径后面加上英文半角分号“;”,以保证变量值有效。

然后一路点击确定。鉴于有些程序不一定能立刻识别到系统环境变量的变化,建议注销用户重新登录。

验证UHD环境配置效果

连接好USRP设备,打开cmd,执行uhd_find_devices.exe

找到了我们连接到PC的设备,证明UHD安装成功了。


安装USB驱动


USRP设备接上电源(如果需要),然后用USB线连接USRPPC,第一次连接很可能会报告未能安装设备驱动 

打开PC的设备管理器,会发现有个未知设备,在“其他设备”àWestBridge”这里,


需要到官网下载驱动: http://www.ettus.com.cn/Download/software/windows_install.html

解压到一个新建的目录,并复制此目录的地址到剪贴板。如我的地址是D:\RecPlay_Dev\erllc_uhd_winusb_driver


在设备管理器的未知设备“WestBridge”上点击右键,“更新驱动程序软件”“浏览计算机以查找驱动程序软件”,“在以下位置搜索驱动程序软件”输入框中黏贴刚才复制的驱动程序路径,然后点击“下一步”,将会提示是否安装驱动程序,

点击“安装”。

安装成功后,设备管理器中多了一个USRP的设备信息。

执行uhd_find_devices,可以看到已经能找到设备了。

更新系统驱动

有时我们需要用到更大的采样率,比如USRP x310下200Ms/s采样率的时候,会发现USRP和系统之间的链接会出问题,主要是USRP报告丢包,溢出等。此时需要保证驱动最新,建议到设备厂商官方网站去找最新驱动,因为之前碰到过用“驱动xx”等第三方驱动管理工具却搜不到最新驱动的问题。建议更新的还包括BIOS、操作系统等IO相关的设备。

通过UHD自带的C:\Program Files (x86)\UHD\lib\uhd\examples\benchmark_rate.exe来验证链路性能是否达到指标。

创建自己的工程,并用上UHD

打开VS2015,创建新工程:

修改为Release配置

右键选中新建的项目,点击properties打开项目属性页面。

在项目属性页,把项目配置修改为Release。(由于我们通过二进制包安装的UHD是release版本的,所以最好用Release的项目配置)

增加额外的头文件目录:

在项目属性页的C/C++  General Additional Include Directories 中,选择右边的小三角,然后选择<Edit…>

在弹出来的Additional Include Directories窗口中,点击右上角的新建按钮,依次选择UHD安装目录下的include目录,和Boost的安装目录。如下图

点击OK确认修改。

增加额外的库文件及目录:

同样是在项目属性页,选择LinkerGeneralAdditional Library Directories,点击右边的小三角,选择<Edit…>

在弹出的Addititonal Library Directories窗口中,添加UHD的库目录和Boost的库目录,按照我们之前安装UHD和Boost的选项,路径是这样的

其实就是uhd.lib所在目录和boost_unit_test_framework-vc140-mt-gd-1_61.lib等boost库文件的所在目录。

然后,还需要在项目属性页面的LinkerInputAdditional Dependencies中,添加uhd.lib的文件名称

添加源文件及代码:

右键点击项目窗口的Source File筛选器,选择AddNew Item

选择Visual C++C++ File(.cpp),然后在窗口下方输入文件名,这里起的文件名是main.cpp

然后在新文件中填入代码,这个代码是最简单的获取已连接的设备信息。

// General Includes
#include <cmath>
#include <complex>
#include <csignal>
#include <fstream>
#include <iostream>
 
// UHD Includes
#include <uhd/exception.hpp>
#include <uhd/types/tune_request.hpp>
#include <uhd/usrp/multi_usrp.hpp>
#include <uhd/utils/safe_main.hpp>
#include <uhd/utils/static.hpp>
#include <uhd/utils/thread_priority.hpp>
 
// Boost Incudes
#include <boost/algorithm/string.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/math/special_functions/round.hpp>
#include <boost/program_options.hpp>
#include <boost/thread/thread.hpp>
 
 
int main(void) {
 
// Look for connected USRPs
uhd::device_addr_t hint;
uhd::device_addrs_t device_addrs = uhd::device::find(hint);
 
// Exit if none were found
if (device_addrs.size() == 0)
	std::cerr << "No UHD Devices Found" << std::endl;
 
// Display the USRPs Found
else for (size_t i = 0; i < device_addrs.size(); i++) {
	std::cout << "--------------------------------------------------" << std::endl;
	std::cout << "-- UHD Device " << i << std::endl;
	std::cout << "--------------------------------------------------" << std::endl;
	std::cout << device_addrs[i].to_pp_string() << std::endl << std::endl;
}
 
// Pause for the user
system("pause");
 
// Exit the program
return 0;
}

编译运行

添加完代码后保存,按快捷键F7编译项目。

红框内容表示编译链接成功(详情部分在不同环境下可能会有不同的输出)。

连接好设备,按快捷键F5以调试模式运行程序。

成功获取到设备信息

SDR软件
RFNoC
UHD
GNU Radio
LabVIEW
MATLAB & SIMULINK
OpenBTS
OpenAirInterface (OAI)
srsLTE
gqrx
关于我们
联系我们
关于CORAD
关于Ettus
产品介绍
USRP X系列
USRP 网口系列
USRP USB接口系列
USRP嵌入式系列
射频子板
天线
线缆
附件
其他服务
TNM网站
公司新闻
行业动态
入门培训
GNU Radio培训
Visual Studio开发环境配置
硬件安装指导
关注我们
版权信息
USRP中文官方网(ettus.com.cn)所发布展示的“产品信息”,“培训资料”版权归USRP中文官方网所有和发布企业所有,任何收集本站产品信息并未经USRP中文官方网许可,USRP中文官方网将保留追究侵权者法律责任的权利。

粤ICP备 06126740-7号 © Copyright 2015.Corad All rights reserved. ettus.com.cn