当前位置: 首页 > ds >正文

【Phytium】飞腾FT2000/4 GPIO功能开发实例

文章目录

  • 芯片概述
  • 开发环境
  • 开发需求
  • 操作步骤概述
    • 复用为GPIO模式
    • 复用为外部中断模式
  • 参考手册
  • 调试步骤参考
    • 将GPIO1 A组配置为外部中断模式
    • 将GPIO0 B组8个pin配置为GPIO模式(Input)
    • 将GPIO1对应的16个pin配置为GPIO模式(Output)

芯片概述

FT2000/4 有2个GPIO模块,暂定为GPIO0、GPIO1,每个模块有16个接口,分为A组、B组
其中每个模块A组的8个IO支持复用为外部中断信号,两个模块总共16个pin可注册为外部中断
每个IO都可以配置为输入、输出模式

开发环境

芯片:FT2000/4
系统:skip

开发需求

将GPIO0对应的16个pin配置为GPIO模式(Output)
将GPIO1_A组8个pin配置为中断模式
将GPIO1_B组8个pin配置为GPIO模式(Input)

操作步骤概述

复用为GPIO模式

	1. 将对应管脚复用为GPIO							// 配置对应func2. 配置方向寄存器为输入、输出					// gpio_swportX_ddr 清零、置13. 将数据写入数据寄存器、从数据寄存器中读取数据	// gpio_swportX_dr  清零、置1

复用为外部中断模式

	1. 配置方向寄存器为input	// gpio_swporta_ddr 置12. 写中断屏蔽器为0		// gpio_intmask 清零3. 配置中断类型寄存器	// gpio_inttype_level4. 配置中断极性寄存器	// gpio_int_polarity6. 使能中断				// gpio_inten 置1

参考手册

FT-2000四核处理器软件编程手册.pdf // 官网下载:略
CSDN参考文章:https://blog.csdn.net/luky_zhou123/article/details/125224529

调试步骤参考

将GPIO1 A组配置为外部中断模式

# 设置管脚复用 // 根据GPIO管脚、功能复用标,来确定管脚号和功能类型iomux_set_fun(ckobv_sel3_pad, 2);//gpio1-A0iomux_set_fun(ckobv_sel4_pad, 2);//gpio1-A1iomux_set_fun(gmac1_phy_txd0_pad, 2);//gpio1-A2...
# 配置GPIO模块为中断模式...for (pin = 0; pin < 8; pin++){/*配置方向寄存器为输入*/GpioClrBit(&gpio1_reg_info->gpio_swporta_ddr, pin);/*写中断屏蔽寄存器为 0*/GpioClrBit(&gpio1_reg_info->gpio_intmask, pin);/*配置中断类型寄存器*/GpioSetBit(&gpio1_reg_info->gpio_inttype_level, pin);/*配置中断极性寄存器上升沿*/GpioSetBit(&gpio1_reg_info->gpio_int_polarity, pin);/*使能中断*/GpioSetBit(&gpio1_reg_info->gpio_inten, pin);}
# 注册中断回调函数等int_install_handler(CALLBACK_FUNC);...
# 使能中断int_enable_pic(43);		// GPIO1 中断号43

将GPIO0 B组8个pin配置为GPIO模式(Input)

# 设置管脚复用 // 根据GPIO管脚、功能复用标,来确定管脚号和功能类型iomux_set_fun(spi0_si_pad, 1);//gpio1-B0iomux_set_fun(sd_cmd_pas, 1);//gpio1-B1...
# 配置GPIO模块为输入模式gpio0_swportb_ddr bit7~bit0 清零,bit[7:0] = GPIO0_A[7:0]
# 读取GPIO锁存值gpio0_swportb_dr bit7~bit0 取值,bit[7:0] = GPIO0_A[7:0]

将GPIO1对应的16个pin配置为GPIO模式(Output)

# 设置管脚复用 // 根据GPIO管脚、功能复用标,来确定管脚号和功能类型iomux_set_fun(spi0_si_pad, 1);//gpio1-B0iomux_set_fun(sd_cmd_pas, 1);//gpio1-B1...
# 配置GPIO模块为输出模式gpio1_swporta_ddr bit7~bit0 置位,bit[7:0] = GPIO1_A[7:0]gpio1_swportb_ddr bit7~bit0 置位,bit[7:0] = GPIO1_B[7:0]
# 输出GPIO寄存器的值gpio1_swporta_dr bit7~bit0 置位/清零,bit[7:0] = GPIO1_A[7:0]gpio1_swportb_dr bit7~bit0 置位/清零,bit[7:0] = GPIO1_B[7:0]
http://www.xdnf.cn/news/10032.html

相关文章:

  • Android Gnss模块初步整理
  • Transformer模型:多头注意力机制深度解析
  • 在MDK中自动部署LVGL,在stm32f407ZGT6移植LVGL-8.3,运行demo,显示label
  • leetcode刷题 java总结
  • 数据库 | 使用timescaledb和大模型进行数据分析
  • Allegro 输出生产数据详解
  • BigemapPro 数据坐标转度分秒格式教程
  • C++_核心编程_ 左移运算符重载 “<<” 左移运算符
  • 解释k8s种ConfigMap和Secret的作用,如何在Pod中挂载环境变
  • PortSwigger-04-cors
  • 快递物流查询接口如何用C#进行调用?
  • 微机消谐装置:保障PT柜安全的核心设备
  • 第二章支线一:影之殿堂 · 阴影与过渡魔法
  • 下一代数模ai智能体研发意见征集
  • Win11安装Dify
  • 【Linux】(1)—进程概念-③Linux进程概念与PCB
  • 重温经典算法——选择排序
  • 从“刚性扩容”到“弹性供给”:移动充电服务重构配电网边际成本
  • Node.js 中 require 源码解析
  • 从零起步认知微内核操作系统(AGI)
  • JavaScript 循环语句总结
  • Linux浅谈
  • VMware安装esd格式系统镜像
  • Java实现命令行图书管理系统(附完整源码)
  • 使用 C/C++ 和 OpenCV 调用摄像头
  • Java打包在加载外面的yaml文件
  • 2025LitCTF 复现
  • 【SQL】关键字
  • 【笔记】suna部署之获取 Supabase API key 和 project URL
  • 【笔记】suna部署之获取 Tavily API key