实验 使用 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);"的值出现跳动. 原因: ...
随机推荐
- ajax模仿form上传图片
<form id="iconForm"> <input class="js_upFile cover1" type="file&qu ...
- Oracle 使用Nid 修改数据库的DBID 和 Database Name
How to Change the DBID, DBNAME Using NID Utility (Doc ID 863800.1) Changing the DBID and Database Na ...
- react搭建一个框架(react-redux-axios-antd Designs)
废话不多说,先给一个github案例:前往.. 1.create-react-app <文件名> 安装router:npm i react-router-dom -S; npm inst ...
- vue学习之路 - 0.背景
1 单页面应用程序 Single Page Application (SPA) 从字面意义来看就是一个网站就一个页面,如: coding 网易云音乐 极致的用户体验,就像nativeapp一样 优点: ...
- POJ1286 Necklace of Beads(Polya定理)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9359 Accepted: 3862 Description Beads ...
- Java分享笔记:Map集合(接口)的基本方法程序演示
package pack02; import java.util.*; public class MapDemo { public static void main(String[] args) { ...
- Percona-Tookit工具包之pt-mext
Preface We are always obliged to analyze many outputs generated by various tools directly ev ...
- MySQL5.6基于GTID的主从复制配置
全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性. GTID实际上是由UUID+TID组成的.其中UUID是一个MySQL实例的唯一标 ...
- Redhat 6.4 linux系统不重启识别热添加的硬盘方法
1.1 选择虚拟机添加一块硬盘 1.2 查看系统当前磁盘信息 [root@zhongyi-test ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8 ...
- php jsonp实例 mip无限滚动组件接口注意事项
在改造mip的过程中,很多同学遇到这样一个问题.mip无限滚动问题 异步请求数据接口(仅支持 JSONP 请求) 异步请求接口需要规范 callback 为 'callback' 那么什么是JSONP ...
