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

【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/717247.html

相关文章:

  • 变量的计算
  • HarmonyOS开发:Image使用详解
  • 大数据-274 Spark MLib - 基础介绍 机器学习算法 剪枝 后剪枝 ID3 C4.5 CART
  • burpsuit抓包完整示例
  • Python基础教程:控制流与函数入门 - 第4-6天
  • Vue的生命周期
  • 技术栈ES的介绍和使用
  • java每日精进 5.29【请求限流】
  • 7-Zip 工具使用
  • How to Initiate Back-to-Back Write Transactions from Master
  • DMBOK对比知识点整理(4)
  • 力扣HOT100之动态规划:118. 杨辉三角
  • 今日分享:怎么综合分析5星股票?
  • 【Unity博客节选】Playable Graph Monitor 安装使用
  • 安全帽检测算法AI智能分析网关V4守护工地/矿山/工厂等多场景作业安全
  • Accelerate实现多卡并行训练
  • Nexus仓库数据高可用备份与恢复方案(上)
  • MVCC(多版本并发控制)机制
  • Cangjie 中的值类型与引用类型
  • 设置变体控制两个apk, 一个是有密码,一个是没有密码!
  • 英语写作中“广泛、深入、详细地(的)”extensively、in-depth、at length (comprehensive )的用法
  • 46. Permutations和47. Permutations II
  • Spring Event(事件驱动机制)
  • 力扣面试150题--二叉树的右视图
  • leetcode hot100刷题日记——27.对称二叉树
  • ubuntu系统上运行jar程序输出时间时区不对
  • C#实现单实例应用程序:确保程序唯一运行实例
  • 算法第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 构筑电网“无形防线”: 防外破告警在线监测服务系统
  • 如何批量给局域网内网里的电脑发送信息