「正点原子FPGA连载」第三章AXI GPIO控制LED实验( 四 )
文章插图
图 3.4.6 板级支持包
点击“Documentation”会在浏览器窗口打开GPIO_API文档 , 会展示关于GPIO的详细信息 , 想了解GPIO的 , 可以仔细浏览其中的信息 。 如图 3.4.7所示:
文章插图
图 3.4.7 AXI GPIO的API文档
点击“Import Examples” , 会弹出下图所示的导入示例界面 , 关于GPIO有四个示例 。 如图 3.4.8所示:
文章插图
图 3.4.8 导入示例
这四个示例的介绍可以在刚才打开的API文档中看到 。 在API文档中点击左侧的“Examples” , 右侧出现这四个示例的介绍信息 , 如图 3.4.9所示:
文章插图
图 3.4.9 示例的介绍信息
从上面的介绍中 , 我们因为本实验是通过GPIO控制LED , 所以我们选择xgpio_example示例 。 勾选图 3.4.8中示例后 , 点击“OK”按钮 。 在Project Explorer中 , 新增了示例system_bsp _example_1目录 , 我们打开其src目录下的xgpio_example.c文件 。 如图 3.4.10所示:
文章插图
图 3.4.10 打开xgpio_example.c文件
“xgpio_example.c”包含三个函数:“xparameters.h”、“xgpio.h”和“xil_printf.h” , 按下Ctrl键的同时鼠标点击相应的函数即可进入函数中查看信息 。 “xparameters.h”定义了一些默认的参数 , “xil_printf.h”是打印函数用来控制打印信息 , “xgpio.h”文件包含Xilinx通用I/O(Xgpio)设备驱动程序的软件API定义 。 我们本次实验的软件程序部分就可以根据官方示例“xgpio_example.c”进行设计 。 接下来先要创建源文件 。 在axi_gpio_led/src目录上右键 , 依次点击“New->File” , 如图 3.4.11所示:
文章插图
图 3.4.11新建源文件
在下图所示的弹出的添加源文件界面中 , “File name”一栏我们输入文件名“main.c” , 然后点击“Finish”按钮 。
文章插图
图 3.4.12源文件名称
我们在新建的main.c文件中输入以下代码:
- 1 #include "xparameters.h"
- 2 #include "xgpio.h"
- 3 #include "xil_printf.h"
- 4 #include "sleep.h"
- 5
- 6 #define LED_ID XPAR_GPIO_0_DEVICE_ID //led器件ID
- 7 #define LED_CHANNEL 1 //LED通道
- 8
- 9 XGpio Gpio; //GPIO实例
- 10
- 11 int main(void){
- 12 int i=0;
- 13
- 14 xil_printf("GPIO LED TEST\n\r");
- 15 //初始化GPIO
- 16 XGpio_Initialize(
- 17 //为指定的信道设置方向, 0 输出, 1输入
- 18 XGpio_SetDataDirection(
- 19
- 20 while (1) {
- 21 //向指定通道写入数据 , LED每0.5秒流转一次
- 22 XGpio_DiscreteWrite(
- 23 //循环计数 , 表示第几个灯亮
- 24 if(i == 3)
- 25 i = 0;
- 26 else
- 27 i = i + 1;
- 28 //延时0.5秒
- 29 usleep(500000);
- 30 }
- 31 return 0;
- 比原子弹还稀有,全球就两国掌握,光刻机为什么如此难造?
- 除了华容网格、原子组件 OriginOS还有什么?
- 星光 | 东大电子科学与工程学院、微电子学院院长孙立涛:借“原子制造”,筑未来电子
- 力鼎华为,以“造原子弹”的体制优势,造“高端光端机”的艰难