实验 使用 vivado zedboard GPIO 开关 开控制 LED
前面我做了几个实验 都没有用过 开关,这一次用一用
发现 vivado 真的挺方便 所以 使用 vivado 开发
1.建工程
我使用 vivado 2013.4

创建新工程 –》 next –》next

勾选 Do not specify sources at this time //这样跳过后面两个添加文件页面

选择 board –》 zedboard –》next –》finsh
就创建完了。
2.PL端 IP核添加与连线

创建一个空的 Diagram
Create Block Design -》点 ok

接下来 添加 IP核 可以点击 提示 Add IP 也可以点击 

搜索 zynq 点 第一个

然后 点击 Run Block Automation 自动配置


点击
添加 GPIO

接下来 会提示 Run Connection Automation 自动连线
选择 S_AXI 变成下图

系统自动添加了 一些IP核
继续点击 Run Connection Automation -》 GPIO

选择 led_8bits -》 OK

同样的方法 添加 GPIO IP核 -》 Run Connection Automation 两次 选择 sws_8bits
就完成了


点击 红圈处 验证 一下。
3.生成 bit 的过程

点击 Source -》 design_1 右键 –》 Create HDL Wrapper -》 OK
然后 Synthesis 、 Implementation 、Bitstream 依次过一遍

这个过程费时间。。 Synthesis 以后 一直点ok 最后 点击 Generate Bitstream
4.输出到SDK


选上 launch SDk 点 OK 就启动SDK 了
我的 SDK 是
点击 FILE –》 new –> Application project

选一个 helloworld
复制以下代码
#include <stdio.h>
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "sleep.h"
#include "platform.h"
#include "xil_types.h"
#include "xgpiops.h" /************************** Constant Definitions *****************************/ /*
* The following constant maps to the name of the hardware instances that
* were created in the EDK XPS system.
*/
#define XPAR_LEDS_ID XPAR_AXI_GPIO_0_BASEADDR //AXI_GPIO_0 是添加的第一个 gpio 所以是 leds
#define XPAR_SWS_ID XPAR_AXI_GPIO_1_BASEADDR //那么 这个自然是 开关了 int main()
{
static XGpio LED_Ptr;//定义GPIO指针
static XGpio SWS_Ptr;
int XStatus;
int num = ;
//初始化 LED
XStatus = XGpio_Initialize(&LED_Ptr,XPAR_AXI_GPIO_0_DEVICE_ID);
if(XST_SUCCESS != XStatus)
print("GPIO INIT FAILED\n\r");
XGpio_SetDataDirection(&LED_Ptr, ,0x00);//通道1;设置方向 0 输出 1输入, 0x00表示8位都是输出
XGpio_DiscreteWrite(&LED_Ptr, ,0x00); //初始化 开关
XStatus = XGpio_Initialize(&SWS_Ptr,XPAR_AXI_GPIO_1_DEVICE_ID);
if(XST_SUCCESS != XStatus)
print("GPIO INIT FAILED\n\r");
XGpio_SetDataDirection(&SWS_Ptr, ,0xFF);//通道1;设置方向 0 输出 1输入 0xFF表示8位都是输入 while(){
num = XGpio_DiscreteRead(&SWS_Ptr, ); //从开关处 读数据
printf("Numb %d\n\r", num);
XGpio_DiscreteWrite(&LED_Ptr, ,num); //直接写入 led
usleep(); //delay 1ms
} printf("end\n\r \n\r");
return ;
}
确保 zedboard 已经连到电脑上 并打开电源
先 xilinx Tools –> ProgramFPGA

然后
-> Run As –> Launch on Hardware (GDB)

可以看到 结果 64 + 1

第 7 个 和 第 1 个 开关 是开的
表示 所以 led 也亮了
实验 使用 vivado zedboard GPIO 开关 开控制 LED的更多相关文章
- Beaglebone Black–GPIO 高低电平控制 LED 灯
上一篇,运用 Linux 的 sysfs,控制本机上的 LED 灯,usr0 至 usr3,这次用 GPIO 控制外部的电路,点亮 LED 灯. 这次的全部材料: BBB 一台 购买 BBB 自带的 ...
- 树莓派GPIO控制LED彩灯
树莓派使用GPIO接口来控制LED灯,自制五彩炫光的节日彩灯. 1.硬件准备 a. 树莓派(Raspberry Pi)一个 b. 彩色RGB二极管 c. 杜邦线 d. 5V电源引脚 以上所有零件均可在 ...
- 【蓝牙低功耗BLE】控制GPIO来点亮LED
这节讲一下最简单的,也是最基础的东西.CC2540的IO操作,把PORT口当做GPIO来用,废话不多说,往下看. 1.硬件电路 硬件电路时最简单的,用一根GPIO去控制LED灯.因为GPIO作为out ...
- 【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED
实验原理: 开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动, CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的 GPIO(PC6),通过 ...
- 【iCore1S 双核心板_ARM】例程四:USART通信实验——通过命令控制LED
实验原理: 开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动, CH340的TXD连接STM32的GPIO(PB6),CH340的RXD连接STM32的 GPIO(PB7),通过串 ...
- 利用DoHome APP和音箱控制LED灯实验参考步骤
准备材料: Arduino Uno 一块 Arduino 扩展板 购买链接 DT-06模块一个 购买链接 安卓手机一个 小度音箱一个 小灯珠一个 杜邦线若干 1.DT-06固 ...
- 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)
最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...
- (三)开关检测来控制LED灯的亮灭
开关检测案例一: 具体电路图如下: K1--K4闭合,控制 D1—D4 亮灭 产生的问题: 1.关于 R8 R9 R7 R10 的阻值选择问题,倘若太大的话, 比如10K 不管开关断开还是闭合,好像 ...
- Arduino控制LED灯(开关控制)
问题:当使用"digitalRead(BUT) == 1"控制LED灯时会出现"digitalWrite(LED, ledState);"的值出现跳动. 原因: ...
随机推荐
- orderBy 过滤器
orderBy 过滤器根据表达式排列数组: <!DOCTYPE html><html><head><meta http-equiv="Content ...
- 判断StringBuilder 是否为空
if("".equals(stringbuilder.toString())) do..
- 红帽CentOS7 密码破解
1.在启动的时候按住方向键停留在内核选项页面,在内核选项出按e键 2.进入到另一个页面后,寻找到以linux16开头的地方,按end到行后,输入空格,然后输入rd.break console=tty0 ...
- Eclipse搭建SpringBoot
第一种方法(不建议) 首先新建Maven工程 勾选第一个按钮,第三个是选择working set ,你可以不选 下一步,配置工程信息,注意打包为jar 打开pom.xml文件,添加spring-boo ...
- 项目配置中 提示access denied的问题 解决方案
项目配置中 提示access denied的问题,一般原因是你的服务器或虚拟主机的pathinfo没开.... 具体解决办法如下 在PHP安装文件夹下找到php.ini.在文件中搜索cgi.fix_p ...
- JDK学习---深入理解java中的HashMap、HashSet底层实现
本文参考资料: 1.<大话数据结构> 2.http://www.cnblogs.com/dassmeta/p/5338955.html 3.http://www.cnblogs.com/d ...
- python中全局变量和局部变量
例1: a = 100 #定义全局变量a def test1(): print(a) #此处a为全局变量 def test2(a):#此处a为局部变量 print(a)#此处a为局部变量 test1( ...
- 使用selenium模拟登录知乎
网上流传着许多抓取知乎数据的代码,抓取它的数据有一个问题一定绕不过去,那就是模拟登录,今天我们就来聊聊知乎的模拟登录. 获取知乎内容的方法有两种,一种是使用request,想办法携带cookies等必 ...
- 3、springboot配置文件占位符
RandomValuePropertySource:配置文件中可以使用随机数 ${random.value}.${random.int}.${random.long}.${random.int(10) ...
- Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面. 这种还是比较简单的类型.因为一个页面也就这种类型. ...
