当前位置: 首页 > 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]

相关文章:

  • 快速了解 GO之接口解耦
  • 变频器从入门到精通
  • Spring Boot 3.5.0中文文档上线
  • [Windows] 摸鱼小工具:隐藏软件(重制版)
  • 高性能DeepSeek V3上线星辰MaaS平台,更快、更稳定
  • Java无序数组 vs 有序数组:性能对比与选型指南
  • Vehicle HAL(1)--整体介绍
  • Unity-QFramework框架学习-MVC、Command、Event、Utility、System、BindableProperty
  • Unity3D多场景管理框架设计
  • 各国竞争的下一代液晶技术:中国铁电液晶取得重大突破突破
  • ubuntu mysql 8.0.42 基于二进制日志文件位置和GTID主从复制配置
  • 机顶盒CM311-5s纯手机免拆刷机,全网通,当贝桌面
  • VR 电缆故障测试系统:技术革新​
  • Kotlin 活动事件通讯跳转深度讲解
  • (LeetCode 每日一题)3373. 连接两棵树后最大目标节点数目 II(贪心+深度优先搜索dfs)
  • 知识课堂|sCMOS相机可编程快门模式解析
  • [网页五子棋][匹配模块]处理开始匹配/停止匹配请求(匹配算法,匹配器的实现)
  • 【AI智能体】Coze 插件从使用到实战详解
  • 机器视觉2,硬件选型
  • canvas 实现全屏倾斜重复水印
  • 网站从建设到运营管理的理解/关键词排名靠前
  • 腾讯建设网站视频下载/竞价推广员月挣多少
  • 做网站不搭建本地环境/百度识图网页版
  • 织梦dede网站后台被挂黑链怎么办/淘宝推广哪种方式最好
  • 公司网页简介/成都seo推广员
  • 商务定制网站/外贸谷歌推广怎么样