zynq点亮sp端LED并且输出打印信息
作者:互联网
前言:实现配置PI核并且点亮PS端LED,并打印信息
ZYNQ创建工程之后首先创建IP核,zynq processing system 由于功能简单只需要设置一下DDR存储器和UART所配置的I/O引脚,uart的波特率在PS-PL configuartion中general中设置。然后在peripheral I/O pin 中勾选GPIO MIO即可。在配置完ZYNQ systemPI核之后,选择run block automation。然后进行保存。在sources中设计上面右键选择generate output products(生成的输出产品)。
Create HDL wrapper (分装) - 生成顶层文件
file中expore hardware 输出计算机硬件
file中launch SDK
在SDK中进行MIO引脚的控制,在system.mss的ps7_gpio_0 gpiops documentation(文档) 中找到需要配置I/O的模板,在import examples(导入 历程) 中进行选择。通过配置之后编写出一下代码:
/*
* main.c
*
* Created on: 2020年2月4日
* Author: ASUS
*/
#include "stdio.h"
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
//核心板PS_MIO0_LED
#define MIO_0_LED 0
XGpioPs_Config *ConfigPtr;
XGpioPs Gpio;
//typedef struct {
// XGpioPs_Config GpioConfig; /**< Device configuration */
// u32 IsReady; /**< Device is initialized and ready */
// XGpioPs_Handler Handler; /**< Status handlers for all banks */
// void *CallBackRef; /**< Callback ref for bank handlers */
// u32 Platform; /**< Platform data */
// u32 MaxPinNum; /**< Max pins in the GPIO device */
// u8 MaxBanks; /**< Max banks in a GPIO device */
//} XGpioPs;
int main()
{
printf("GPIO MIO test!\n\r");
//初始化GPIO驱动
//根据器件的ID,查找器件的配置信息
ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);
//初始化GPIO驱动 baseaddr 基地址
XGpioPs_CfgInitialize(&Gpio, ConfigPtr,ConfigPtr->BaseAddr);
//设置GPIO的方向设置为输出(0为输出 / 1为输出) MIO0设置为输出
XGpioPs_SetDirectionPin(&Gpio, MIO_0_LED, 1);
//设置输出使能
XGpioPs_SetOutputEnablePin(&Gpio, MIO_0_LED, 1);
//写数据到GPIO的输出引脚
XGpioPs_WritePin(&Gpio, MIO_0_LED, 0x0);
while(1)
{
XGpioPs_WritePin(&Gpio, MIO_0_LED, 0x1);
usleep(500000);//延时1s
XGpioPs_WritePin(&Gpio, MIO_0_LED, 0x0);
usleep(500000);//延时1s
}
return 0;
}
第一次发博客,如果有什么问题请大家斧正
2020-02-06
蜉蝣撼树 发布了1 篇原创文章 · 获赞 0 · 访问量 37 私信 关注
标签:输出,Gpio,LED,打印信息,MIO,sp,GPIO,XGpioPs 来源: https://blog.csdn.net/li_xiao_zhi/article/details/104194493