IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> DAVE用户手册-Getting Started 11 -> 正文阅读

[嵌入式]DAVE用户手册-Getting Started 11

11.DAVE APP实例与配置数据结构

APP实例概念

依然以一张简单的图开始。
在这里插入图片描述
图1:简单的应用

在图1的应用中,MCU的UART通道X和Y分别连接两台PC。

MCU周期性的向2台PC发数据。用到的APP是UART。

但是有一个问题! UART APP只有1个发送通道,但是在这个应用中需要配置2个!

救场的是APP实例的概念。在面向对象语言例如C++中,一个类可以定义多个对象。对于定义好的对象,只为类数据分配内存,而类方法只定义1次。

DAVE APP使用相同的概念。APP好比类。在工程中,一个APP可以有多个实例。APP的每个实例好比对象。你可以使用APP GUI配置每个实例。

在生成代码时,实际上是在为实例生成配置数据结构。

有了这个背景知识,你可以通过建立UART APP的2个实例来完成这个应用。
在这里插入图片描述
图2:UART APP的多个实例
在这里插入图片描述
工程中可以包含的APP实例数量受限于硬件。如果你使用的MCU只有最多6个UART通道,在工程中只能包括最多6个UART实例。

假设MCU有最多6个UART通道和5个IO引脚(没错,就5个),每个UART APP需要1个UART通道和2个IO引脚(一发一收),DAVE只允许向工程中添加2个实例,不允许添加更多的了。

APP实例配置

在这里插入图片描述
图3:每个实例的配置GUI

在各个APP实例上双击,即弹出其配置GUI。它们可以配置不同的参数。完成配置后,生成代码。
在这里插入图片描述
图4:APP句柄

上图展示了为每个实例生成代码中的配置数据结构,在DAVE中这些数据结构称为APP句柄。

注意这些句柄所在文件的名字:uart_conf.c

APP句柄概念

一个典型的APP句柄包括:

  • 指向所消耗硬件资源的指针
  • 所消耗APP的句柄
  • 基于GUI的配置信息
    在这里插入图片描述
    友情提醒:生成的只是配置数据结构,APP库是静态的。

私有标签

到目前为止我们完成的都是玩具应用。实际应用中,复杂的应用会包括多个APP及其多个实例。我们常由于其数量繁多而深受其害。比如,我们常常忘记APP句柄GPIO_18表示什么意思。

为了解决这个问题,DAVE允许你自定义句柄。

在一个实例上点右键,选择Change Instance Label,键入自己定义的APP句柄名称。
在这里插入图片描述
图5:用户标签

单例APP

有的APP只能定义单个实例,因为硬件上有这个约束。比如SYSTICK定时器。

可共享的APP

有时,硬件资源被共享,因此围绕这些资源建立的APP也是可共享的。

例1
时钟配置由CLOCK APP专门处理。对每个需要时钟配置的APP而言,有2个选择:其一是占用硬件时钟资源,但这样的话其他APP在设置时钟时会被拒绝。

这时就用得着共享APP了,所有需要配置外设时钟的APP都消耗一个共享CLOCK APP。

例2
下面是一个CCU4模块。
在这里插入图片描述
图6:CCU4模块

此模块有4个独立的定时器片,每个定时器片拥有专用的寄存器。除了这4个定时器片之外,还有一些寄存器控制此模块的全局特性。
一个PWM APP消耗一个定时器片,PWM的GUI可配置该定时器片产生PWM信号。然而,它还要求配置CCU4模块的全局特性。理论上,最多允许添加4个PWM APP实例,并且这4个实例都要配置CCU4模块的 全局特性。此时共享的CCU4全局APP就派上了用场。
在这里插入图片描述
图7:CCU4模块

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:39:56  更:2021-10-11 17:41:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:32:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码