2333|7

862

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

[平头哥RVB2601创意应用开发]体验分享二:多种方式点灯,组件学习 [复制链接]

  本帖最后由 wo4fisher 于 2022-3-19 22:07 编辑

使用MCU点灯,经过了YOC层层包装之后,点灯便不再只有一种玩法。

1、使用YOC的AOS API之HAL硬件抽象层接口点灯  GPIO · GitBook (t-head.cn)

对于不同底层驱动的gpio操作实现,统一封装成本文所述hal接口。上层使用相关功能时,统一调用hal层接口,以保证app的通用性。 hal相关头文件位于目录:

链接已隐藏,如需查看请登录或者注册
 hal相关实现位于具体的mcu目录下

驱动接口如下:(使用时包含头文件:)

#include "aos/hal/gpio.h"

可以实现GPIO输出高电平、低电平、反转操作。

  2、使用YOC的AOS API之CSI2的GPIO_PIN设备 GPIO_PIN · GitBook (t-head.cn)

GPIO(General-purpose input/output) 通用型之输入输出的简称。在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状态就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。

使用时包含头文件

#include <drv/gpio_pin.h>

可以实现GPIO输出高电平、低电平、反转操作。

3、使用YOC的AOS API之CSI2的GPIO设备GPIO · GitBook (t-head.cn)

GPIO(General-purpose input/output) 通用型之输入输出的简称。在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状态就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。

 其实这里有个疑问,就是GPIO和上边的GPIO_PIN设备,官方文档解释内容是一样的,操作接口看上去也是基本一样的。

使用时包含头文件:

#include <drv/gpio.h>

可以实现GPIO输出高电平、低电平、反转操作。

此外,AOS API的csi还有csi1,官方的解释

CSI 是针对嵌入式系统,定义了CPU内核移植 接口、外围设备操作接口统一软件接口规范,消除不同芯片的差异,简化软件的使用及提高软件的移植性。通过CSI 接口规范,可以快速实现芯片对接到YoC 平台。

CSI 的具体内容包括:

  • CSI-CORE:定义了CPU和相关紧耦合外设的接口规范
  • CSI-DRIVER:定义了常用的驱动的接口规范
  • CSI-KERNEL: 定义实时操作系统的接口规范

注:CSI2驱动接口比CSI1在代码密度上有较大提升

 

4、 使用YOC的AOS API之PWM设备PWM · GitBook (t-head.cn)

脉冲宽度调制(Pulse width modulation,简称PWM)是一种强大的模拟信号数字编码技术,它利用高分辨率计数器产生方波,并通过调制方波占空比对模拟信号进行编码。

使用时包含头文件:

#include <drv/pwm.h>

5、源码及使用方法

根据官方helloworld例程创建工程,然后再app下新建LED文件夹,将myled.c和myled.h文件放入LED文件夹。

根据main.c修改main.c文件。

打开myled.h,根据类型选择宏定义即可。

  myled.h (316 Bytes, 下载次数: 1)

main.c (893 Bytes, 下载次数: 0)

myled.c (4.05 KB, 下载次数: 0)

 

下一篇:按键输入

最新回复

CSI的全称是什么呀   详情 回复 发表于 2022-3-20 10:26
点赞 关注
个人签名水不撩不知深浅 人不拼怎知输赢
 
 

回复
举报

862

帖子

2

TA的资源

纯净的硅(初级)

沙发
 

使用下来的感受:

1、yoc云文档使用

1.1 RVB2601未加入YOC文档中

1.2 yoc云文档内有一些小错误,尤其是组件接口内附带的例程中,这个是不太友好的。

比如:csi2中gpio api的例程中,缺少EXAMPLE_TOGGLE_GPIO_IDX的定义。需要读者要翻代码才能搞定。

1.3 经过几天的使用体验,经1520认证的例程,package中的api有很多是重复的,各类package的依赖关系官方没有很好的说明文档(还是我没找到)。又比如,chip_ch2601包的driver中包含了各类外设的.c源文件,而在csi包中,对应的drv下包含了对应的.h头文件,这个也是挺疑惑的。

2、cdk使用体验

2.1 cdk安装后,默认拉取下来的工程,没有代码提示,安装了两台电脑,一台就有了,但是也会抽抽,另外一台大多数时间没有。

2.2 代码中鼠标右键 转到定义,经常性无法跳转。

2.3 代码中对于包含的头文件,右键打开文件的时候,极少数情况下能打开,大多数是无效的。

2.4 cdk太吃硬件了。vs2019、ad2022都没有这么卡过

点评

CSI的全称是什么呀  详情 回复 发表于 2022-3-20 10:26
个人签名水不撩不知深浅 人不拼怎知输赢
 
 
 

回复

7003

帖子

11

TA的资源

版主

板凳
 

楼主,用心了,感觉真是用心在写这个贴子。得用心向您学习才行。

CDK的体验,真心感觉跟你一样,尤其是打开工程,致少10分钟才缓过来。

 
 
 

回复

153

帖子

0

TA的资源

一粒金砂(中级)

4
 

请问类似于csi_pwm_t的结构体内部情况怎么查看呢?右键parse all project还是点不进去耶

点评

右键无法跳转的话就只能在左边工程目录树中一层一层打开看了。大概是在chip_2601那个包里,有对应的h头文件。另外在另一个包里有对应的c文件,比如pwm、gpio、gpio_pin等等  详情 回复 发表于 2022-3-20 13:25
 
 
 

回复

153

帖子

0

TA的资源

一粒金砂(中级)

5
 
wo4fisher 发表于 2022-3-19 22:27 使用下来的感受: 1、yoc云文档使用 1.1 RVB2601未加入YOC文档中 1.2 yoc云文档内有一些小错误, ...

CSI的全称是什么呀

点评

全称不清楚,没找到对应的英文全称大概作用就是定义riscv架构下mcu/soc内核、片上外设相关操作api接口规范,函数名称、输入参数、返回类型,然后针对特定的芯片,进行 api具体的实现。当然,在rvb2601里这些接口已经  详情 回复 发表于 2022-3-20 13:28
 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

6
 
梦溪开物 发表于 2022-3-19 23:40 请问类似于csi_pwm_t的结构体内部情况怎么查看呢?右键parse all project还是点不进去耶

右键无法跳转的话就只能在左边工程目录树中一层一层打开看了。大概是在chip_2601那个包里,有对应的h头文件。另外在另一个包里有对应的c文件,比如pwm、gpio、gpio_pin等等

 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

7
 
梦溪开物 发表于 2022-3-20 10:26 CSI的全称是什么呀

全称不清楚,没找到对应的英文全称
大概作用就是定义riscv架构下mcu/soc内核、片上外设相关操作api接口规范,函数名称、输入参数、返回类型,然后针对特定的芯片,进行 api具体的实现。
当然,在rvb2601里这些接口已经实现了。

 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

8
 

上边的三个文件的使用步骤
1 在app/src/下新建LED文件夹,然后把myled的两个文件放进去
2 在工程目录树中,打开app--src,然后右键,选add source folder,在打开的窗口中添加 LED的目录
3 打开main.c,复制main.c中的内容到工程的main.c中
4 打开工程目录下的package那个配置文件,在 include和src中增加LED目录的引用,并包含所有的.c文件(这个可以参考已经有的内容写法),可能在cdk中有同等效果的操作。
然后编译、下载、观察效果
打开myled.h可以通过开始的宏定义去选择使用的接口类型以便进行测试。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表