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

裕华建设集团网站云推广

裕华建设集团网站,云推广,郑州网络营销哪个好,网站功能简介文章目录 前言一、FPIOA是什么#xff1f;二、FPIOA代码分析总结 前言 磨刀不误砍柴工#xff0c;在正式开始学习之前#xff0c;我们先来了解下K210自带的FPIOA#xff0c;这个概念可能与我们之前学习STM32有很多不同#xff0c;STM32每个引脚都有特定的功能#xff0c… 文章目录 前言一、FPIOA是什么二、FPIOA代码分析总结 前言 磨刀不误砍柴工在正式开始学习之前我们先来了解下K210自带的FPIOA这个概念可能与我们之前学习STM32有很多不同STM32每个引脚都有特定的功能我们只需要对引脚进行配置后使用即可配置其寄存器进行输入/输出/上拉/下拉等。使用FPIOA现场可编程 IO 阵列可能需要我们先从思维模式上做个转变下面我们一起来看看吧 一、FPIOA是什么 引用下官方文档的说法FPIOA现场可编程 IO 阵列允许用户将 255 个内部功能映射到芯片外围的 48 个自由 IO 上。 这个功能可以说的神秘点叫硬件软件功能绑定接口映射。简单的理解其实这东西有点像STM32或者其他芯片上的引脚复用因为复用这东西我们熟悉即一个引脚有多个功能可以选择只不过这48个IO口的可复用功能更多有255个功能可选有没有理解如果没有理解我们来追踪下FPIOA的代码实现瞅瞅开源真好哈哈哈哈。 二、FPIOA代码分析 对应的头文件 fpioa.h 总共为用户提供以下接口 • fpioa_set_function //设置 IO0-IO47 管脚复用功能 • fpioa_get_io_by_function //根据功能号获取 IO 管脚号 • fpioa_set_io //设置 IO 管脚的配置 • fpioa_get_io //获得 IO 管脚的配置 • fpioa_set_tie_enable //使能或禁用 FPIOA 功能输入信号的强制输入电平功能 • fpioa_set_tie_value //设置 FPIOA 功能输入信号的强制输入电平高或者低仅在强制输入电平功能启用时生效 • fpioa_set_io_pull //设置 IO 的上拉下拉 • fpioa_get_io_pull //获取 IO 管脚上下拉值 • fpioa_set_io_driving //设置 IO 管脚的驱动能力 • fpioa_get_io_driving //获取驱动能力我们分析的话要从fpioa_set_function这个开始一起看着代码下方代码调用fpioa_set_function 传入两个参数一个是硬件IO的索引号另外一个是要绑定的功能的索引其中FUNC_GPIO1是固件中预定义好的功能索引号可以查看fpioa.h文件 /*****************************HEAR-FILE************************************/ #include fpioa.h/*****************************HARDWARE-PIN*********************************/ // 硬件IO口与原理图对应 #define PIN_RGB_R (12) #define PIN_RGB_G (13) #define PIN_RGB_B (14)/*****************************SOFTWARE-GPIO********************************/ // 软件GPIO口与程序对应 #define RGB_R_GPIONUM (0) #define RGB_G_GPIONUM (1) #define RGB_B_GPIONUM (2)/*****************************FUNC-GPIO************************************/ // GPIO口的功能绑定到硬件IO口 #define FUNC_RGB_R (FUNC_GPIO0 RGB_R_GPIONUM) #define FUNC_RGB_G (FUNC_GPIO0 RGB_G_GPIONUM) #define FUNC_RGB_B (FUNC_GPIO0 RGB_B_GPIONUM)void hardware_init(void) {// fpioa映射fpioa_set_function(PIN_RGB_R, FUNC_RGB_R);fpioa_set_function(PIN_RGB_G, FUNC_RGB_G);fpioa_set_function(PIN_RGB_B, FUNC_RGB_B);}可能大家在看#define FUNC_RGB_R这类宏定义的时候会很疑惑那我换个写法大家可能看的更明白。但是我为什么要写成上面的这种FUNC_GPIO0 RGB_B_GPIONUM形式那因为做完绑定和初始化后设置io时候只需要传入其索引号即RGB_B_GPIONUM那么使用就会简单些如下写法只是为了方便大家理解。全量代码可以查看AI嵌入式K210项目3-GPIO控制 #define FUNC_RGB_R (FUNC_GPIO0) #define FUNC_RGB_G (FUNC_GPIO1) #define FUNC_RGB_B (FUNC_GPIO2)那么这个索引编号是不是可以无限编下去那NO通用IO就8个在用就只能用高速IO了下图看看GPIO High speed这个绑定硬件引脚功能的操作理解了吗 下面看看是如何实现的吧我直接在代码里注释吧这样你们看起来省事些。 int fpioa_set_function(int number, fpioa_function_t function) {uint8_t index 0;/* Check parameters FPIOA_NUM_IO为引脚数量48, FUNC_MAX为支持的功能数256*///检查引脚编号和功能编号是否超出限制if(number 0 || number FPIOA_NUM_IO || function 0 || function FUNC_MAX)return -1;//如果指定引脚number要绑定的功能为FUNC_RESV0则直接调用fpioa_set_function_raw(number, FUNC_RESV0)if(function FUNC_RESV0) {fpioa_set_function_raw(number, FUNC_RESV0);return 0;}/* Compare all IO *///如果指定引脚number要绑定的是其他功能则会遍历所有引脚的功能配置如果有其他引脚绑定着这个功能则会将其他引脚的功能设置为FUNC_RESV0for(index 0; index FPIOA_NUM_IO; index){if((fpioa-io[index].ch_sel function) (index ! number))fpioa_set_function_raw(index, FUNC_RESV0);}//如果上面的情况都不是那么调用fpioa_set_function_raw(number, function)配置引脚number为指定功能fpioa_set_function_raw(number, function);return 0; }可以看到如果不出现异常情况最终正常处理的流程会调用fpioa_set_function_raw()一起来看看这个函数的实现吧。 int fpioa_set_function_raw(int number, fpioa_function_t function) {/* Check parameters */// 在检测一波引脚编号和功能编号是否超出限制if(number 0 || number FPIOA_NUM_IO || function 0 || function FUNC_MAX)return -1;/* Atomic write register *///如果没问题把你传进来的function参数赋值给你定的硬件num上。fpioa-io[number] (const fpioa_io_config_t){.ch_sel function_config[function].ch_sel,.ds function_config[function].ds,.oe_en function_config[function].oe_en,.oe_inv function_config[function].oe_inv,.do_sel function_config[function].do_sel,.do_inv function_config[function].do_inv,.pu function_config[function].pu,.pd function_config[function].pd,.sl function_config[function].sl,.ie_en function_config[function].ie_en,.ie_inv function_config[function].ie_inv,.di_inv function_config[function].di_inv,.st function_config[function].st,/* resv and pad_di do not need initialization */};return 0; }然后你定义的这个硬件口就用了对应function的能力是不是挺好玩。好了如果要好好理解的话可以看看我的分析结合源码神秘的FPIOA就是这样 总结 本节主要用大白话和大家说了什么事FPIOA解析了其实现过程。
http://www.w-s-a.com/news/293484/

相关文章:

  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器
  • 分销系统价格多少北京网站优化平台
  • 怎样做旅游公司的网站泉州网站建设方案优化
  • 手机网站页面范例个人网站做淘宝客违规
  • 做一套网站开发多少钱SEO做得最好的网站
  • 咸宁做网站的公司那家便宜福建建设注册管理中心网站
  • 网站建设工作汇报黑科技广告推广神器
  • 淘宝做首页热点的什么网站徐州建设安全监督网站
  • 正规的镇江网站建设广州有什么好玩的东西
  • 丹阳网站设计公司网站开发 0755
  • 百度网页版浏览器网址找文网优化的技术团队
  • 信息网站怎么做做儿童网站赚钱吗
  • 帝国cms 网站迁移个人网站备案备注
  • 青岛做网站推广怎样做网站才不能被攻破
  • 使用网站模板快速建站教案杂志wordpress主题 无限加载
  • 南宁南宁做网站南安网络推广
  • 旌阳移动网站建设微网站 杭州
  • 合肥网站开发如何用VS2017做网站
  • 网站 制作公司福州企业建站软件
  • 网站推广主要方法一流的盘锦网站建设
  • 给个网站好人有好报2021东莞专业网站营销
  • 中国网站优化哪家好制作网站页面
  • 网站站内优化度娘网站灯笼要咋做呢