zynq开发系列2:GPIO连接MIO控制LED闪烁
- MIO连接得是PS端模块,UART用来输出调试信息,GPIO连接MIO再连接到PS端LED。zedboard上LED是MIO7
- 这次实验主要在PS端运行所以zynq核只需要留下DDR和FIXED_IO两个端口,基本和hello world实验类似,两个端口记得make externals生成引脚。
- 删去端口操作同helloworld
- 配置zynq核时主要是在Peripheral I/O下勾上UART1和GPIO MIO
- 接下来是常规操作,生成结果,生成顶层文件,导出硬件,打开SDK,未在PL上运行故不需要include bitstream,一路OK
- 打开SDK新建一个空工程(模板从helloworld改为选择empty),在工程src文件夹下选择新建源文件命名为main.c
- 在system.hdf可以看见ps7_gpio_0的基地址
0xe000a000
这和文档里相同。在system.mss下可以看到giops得例程,学习写程序可以从这里开始。
- 吐槽一下,2018.3版本sdk只有两个例子,主要参考得还是第二个例子。第一个例子有关中断(interrupt),第二个例子名字带个polled根本不知道它想干啥。从简介才知道是想使用API向单独引脚读/写数据。正好我们控制一个灯即向一个灯管脚写0/1来控制,看这篇文章来仿造用法。
- 如果不想知道怎么写得直接把下面代码复制进main.c直接运行即可,想明白具体原理可以看正点原子视频P9-P11或者直接看博客
#include "stdio.h"
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"XGpioPs_Config * ConfigPtr;
XGpioPs Gpio;#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
#define MIO7_LED 7int main() {printf("GPIO MIO LED.\n\r");ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);XGpioPs_CfgInitialize(&Gpio, ConfigPtr,ConfigPtr->BaseAddr);XGpioPs_SetDirectionPin(&Gpio, MIO7_LED, 1);XGpioPs_SetOutputEnablePin(&Gpio, MIO7_LED, 1);while(1) {XGpioPs_WritePin(&Gpio, MIO7_LED, 0x1);usleep(500000);XGpioPs_WritePin(&Gpio, MIO7_LED, 0x0);usleep(500000);}return 0;
}
- 可以看见zedboard板子上显示屏旁边的LED开始闪烁,并且在sdk软件的串口输出页面可以看见打印的内容
感谢正点原子B站发布的视频【第二期】手把手教你学ZYNQ之嵌入式开发篇
zynq开发系列2:GPIO连接MIO控制LED闪烁相关推荐
- zynq开发系列2:GPIO连接MIO控制LED闪烁(SDK端代码编写详解)
根据文档只需要3步,zynq文档学习之向GPIO引脚写数据 把GPIO方向设置为输出 设置输出使能 写数据到GPIO的输出引脚 参考官方参考教程学习编写代码(system.mss下没有这栏说明gpio ...
- STM32开发笔记82: 使用C++语言控制LED闪烁
单片机型号:STM32L053R8T6 本文介绍应用C++语言控制LED闪烁的方法. 先看电路图,单片机PB12引脚控制LED的亮灭,当PB12引脚给出低电平LED亮,当PB12引脚给出高电平LED灭 ...
- petalinux zynq spi_ZYNQ 系列 01 | PL 实现按键控制 LED(1)
注:本篇文章由[开源骚客:OpenSoc]公众号首发,现转载至头条号. 新的开始,这一篇文章,就算是使用 Vitis 开发 ZYNQ 的第一篇文章吧. 计划把 ZYNQ 开发写成一个系列,所使用的的软 ...
- zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起
按键和LED由MIO连接,在PS端用按键控制LED,按键按下时发出信号,LED接收到信号后亮起 可以参考上一节实验 zynq开发系列2:GPIO连接MIO控制LED闪烁 的流程和代码,在vivado操 ...
- zynq开发系列4:EMIO连接按键控制MIO连接的灯
EMIO是负责PL端和PS端通信,PL侧按键可以通过连接EMIO来控制连接到MIO的PS侧的LED.原理和实验3 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 类似,只是由MIO侧的 ...
- zynq开发系列4:MIO按键中断控制LED
与实验三类似 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 ,PS部分设置为与实验一helloword相同的最小系统,但按键控制LED的方式设置为中断,即通过按下按键为中断这一方式从 ...
- zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)
axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...
- ZYNQ开发系列——hw_platform包和BSP包中的一些理解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--hw_platform包和BSP包中的一些理解 前言 hw_platform BSP包 前言 前面我们完成了PS输 ...
- ZYNQ开发系列——把PS和PL程序烧写到FLASH中
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--把PS和PL程序烧写到FLASH中 生成 fsbl.elf 生成 BOOT.bin 下载 BOOT.bin 文件到 ...
最新文章
- 解决mysql服务无法启动的问题
- 【算法】BitMap
- python新建一个文件夹需要重新安装模块吗_解决pycharm每次新建项目都要重新安装一些第三方库的问题...
- 感觉又学到了不少,在这里写下来,但也有一个问题,不知道是为甚吗?
- 机器学习中的相似性度量(转载)
- 量子位首款周边卫衣上线,给你AI的力量
- 解密朋友圈红包照片功能
- Apache设置用户权限(2个域名。一个能访问全部文件,一个只能访问指定文件)...
- Typora如何自动生成标题序号
- Laravel框架发送邮件 阿星小栈
- div背景 css网格背景_如何为背景图像网格创建运动悬停效果
- ictclas linux 64 java 下载,Ubuntu下ICTCLAS JNI的使用
- Redis 惰性删除
- Sprite Kit 移动精灵
- C++ throw()关键词:一个被C++标准抛弃的玩意儿
- 裁判文书关键信息提取
- 享学课堂Android进阶课程六大服务,包你从小白成长为核心开发,拿到心仪offer
- 天下谁人不识君的上一句是什么,天下谁人不识君的意思?全诗赏析
- 关于 android 里面的 AndroidX 和 annotation 冲突的解决方式
- S5PV210 USB下载程序
热门文章
- 小米商城项目解析(完)
- Hashmap存储大小
- 怎么二值化后找字_邓婕美肤团队:秋季皮肤出现问题后怎么办 找对护肤方法是关键_美肤吧...
- lsdyna如何设置set中的node_list_详解MySQL数据库如何实现类似Oracle的序列?
- 【深度优先搜索】计蒜客:踏青
- phpmyadmin/scripts/setup.php,Linux下phpMyAdmin安装过程中的问题解决
- php编写九九乘法表隔行换色,JavaScript实现99乘法表及隔行变色实例代码
- 【HDOJ2222】Keywords Search(AC自动机)
- 【NOIP2008】【Vijos1493】传纸条
- Spring→事务、隔离级别、事务传播行为、编程式事务控制、XML配置声明式事务(原始方式)、XML配置声明式事务(基于tx/aop)、@注解配置声明式事务、优势总结