AI-Talk开发板之LED

一、说明

AI-Talk开发板上有一颗用户LED,连接在CH32 PA2管脚,低电平亮,高电平灭。

相关电路图如下:

需要提前给CH32V003烧录特定的固件才能将CH32作为CSK6011A的exmcu,参考AI-Talk开发板更新CH32固件。​​​​​​​

二、工程 

1、创建项目

进入snap/examples/目录,执行创建项目的命令:

lisa zep create
? 选择sample. (`左右键/空格键` 展开文件夹,`回车键` 确定选择)→ display→ [display_kscan]→ [dma_memcpy]→ [entropy]→ [exmcu_adc]↓ [exmcu_gpio_led]→ [exmcu_pwm]→ [gpio_led]→ [hwinfo]→ i2c

选择exmcu_gpio_led,然后确定。此时examples目录下有一个exmcu_gpio_led的工程,目录结构如下:

2、配置文件

prj.conf配置文件中已经打开了GPIO_CSK6_CH32V003的配置:

CONFIG_GPIO_CSK6_CH32V003=y
3、设备树

        设备树文件csk6011a_nano.dts中已经有led0的配置,但是gpio和AI-Talk开发板不一致。这里在项目下创建一个设备树覆盖文件,重新配置led0

在hello_world根目录下创建boards目录,并增加csk6011a_nano.overlay设备树配置文件:

exmcu_gpio_led
├─boards //设备树板型文件└─csk6011a_nano.overlay  //设备树配置文件
...

在csk6011a_nano.overlay文件中添加控制 led 的 GPIO 配置和ch32v003的配置,具体内容如下:

#include <zephyr/dt-bindings/adc/adc.h>/  /*根节点*/
{/*定义别名为led0的gpio设备树*/aliases {led0 = &board_led_0_label;/* led0别名映射到led0设备树node label */csk6-exmcu = &csk6_ch32v003;};leds {compatible = "gpio-leds";/* 设置led设备树的ymal绑定文件 */board_led_0_label: board_led_0_nodeid { /* node label和node id,皆可自定义命名 */gpios = <&exgpioa 2 GPIO_ACTIVE_LOW>; /* GPIO逻辑电平模式设置 */label = "User LED0"; /* 节点的 label 属性,通过传入device_get_binding()接口可以获取gpio设备实例 */};};};&pinctrl {pinctrl_i2c1_scl_default: i2c1_scl_default{pinctrls = <I2C1_SCL_GPIOB_09>;};pinctrl_i2c1_sda_default: i2c1_sda_default{pinctrls = <I2C1_SDA_GPIOB_08>;};
};&i2c1 {status = "okay";pinctrl-0 = <&pinctrl_i2c1_scl_default &pinctrl_i2c1_sda_default>;pinctrl-names = "default";csk6_ch32v003: csk6_ch32v003@6c {/*** Please make sure that the external MCU firmware has been loaded* SCL --> external MCU PC5* SDA --> external MCU PC6*/compatible = "listenai,csk-i2c-ch32v003";reg = <0x6c>;status = "okay";#address-cells = <1>;#size-cells = <0>;/* CH32V003-GPIOA */exgpioa: gpio@0 {compatible = "listenai,csk-gpio-ch32003-port";reg = <0x00>;status = "okay";ngpios = <8>;#gpio-cells = <2>;gpio-controller;pin_mask = <0x00>;};/* CH32V003-GPIOB */exgpiob: gpio@1 {compatible = "listenai,csk-gpio-ch32003-port";reg = <0x01>;status = "okay";ngpios = <8>;#gpio-cells = <2>;gpio-controller;pin_mask = <0x00>;};/* CH32V003-GPIOC */exgpioc: gpio@2 {compatible = "listenai,csk-gpio-ch32003-port";reg = <0x02>;status = "okay";ngpios = <8>;#gpio-cells = <2>;gpio-controller;pin_mask = <0x00>;};/* CH32V003-GPIOD */exgpiod: gpio@3 {compatible = "listenai,csk-gpio-ch32003-port";reg = <0x03>;status = "okay";ngpios = <8>;#gpio-cells = <2>;gpio-controller;pin_mask = <0x00>;};exadc: adc@4 {/*** external adc channel map** CH0 --> PA2* CH1 --> PA1* CH2 --> PC4* CH3 --> PD2* CH4 --> PD3* CH5 --> PD5* CH6 --> PD6* CH7 --> PD4**/compatible = "listenai,csk-adc-ch32v003";reg = <0x4>;status = "okay";#io-channel-cells = <1>;#address-cells = <1>;#size-cells = <0>;channel@2 {reg = <2>;zephyr,gain = "ADC_GAIN_1";zephyr,reference = "ADC_REF_INTERNAL";zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;zephyr,resolution = <10>;};};expwm: pwm-controller@5 {compatible = "listenai,csk-ch32v003-pwm";reg = <0x5>;status = "okay";clock-prescaler = <480>;clock-frequency = <48000000>;#pwm-cells = <4>;};};
};
4、 代码

不使用main.c的代码,重新编写代码:

#include <zephyr/zephyr.h>
#include <zephyr/drivers/gpio.h>/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS   1000/* 通过别名获取 "led0" 设备树 node id */
#define LED0_NODE DT_ALIAS(led0)/* 通过 node id 获取 led0 设备树信息 */
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);void main(void)
{printk("Hello World! %s\n", CONFIG_BOARD);int ret;/* 检查硬件设备是否就绪 */if (!device_is_ready(led.port)) {return;}/* 将GPIO配置为输出并将其初始化为逻辑电平1 */ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);if (ret < 0) {return;}while (1) {/* GPIO电平反转控制 */ret = gpio_pin_toggle_dt(&led);if (ret < 0) {return;}k_msleep(SLEEP_TIME_MS);}
}

三、编译

在exmcu_gpio_led目录下执行编译命令:

lisa zep build -b csk6011a_nano

编译生成的固件:examples/exmcu_gpio_led/build/zephyr/zephyr.bin  

四、烧录 

固件的烧录及查看运行日志参照:AI-Talk开发板CSK6固件烧录-CSDN博客

五、运行

连接AI-Talk开发板的调试接口,PC端运行终端软件可以接收到如下日志:

[00:00:00.000,000] <inf> csk6_exmcu_i2c: exmcu addr:0x6C
[00:00:00.046,000] <inf> csk6_exmcu_i2c: exmcu info, chip type:ch32v003, ver:1.3
*** Booting Zephyr OS build zephyr-v3.4.0-46-gb8fcc47cc045 ***
*** ListenAI CSK SDK Version: 2.0.0.0-f097b7f9df ***
Hello World! csk6011a_nano

开发板上LED1会一致闪烁,频率0.5Hz。

大模型交互终端硬件点灯成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1524204.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何查看Mac的处理器架构‌‌是ARM还是x86

‌通过命令行查看Mac的处理器架构‌‌ 打开终端&#xff08;Terminal&#xff09;。输入命令 uname -m 并回车。如果输出结果是 arm64&#xff0c;则表示你的Mac使用的是ARM架构&#xff1b;如果输出结果是 x86_64&#xff0c;则表示你的Mac使用的是x86架构。 如图&#xff1…

2024/9/4黑马头条跟学笔记(二)

app端文章列表 学习内容 需求分析 上方分类频道切换 布局&#xff0c;无图&#xff0c;单图&#xff0c;三张图 文章数据库表 导入文章数据库 结构分析 配置-文章 一对一&#xff0c;拆表&#xff0c;冷热数据分离满足范式 表的拆分-垂直分表 优势 查文章信息不会连带查…

Day10_0.1基础学习MATLAB学习小技巧总结(10)——程序流程控制

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 素材来源“数学建模清风” 特此说明&#xff1a;本博客的内容只在于总结在…

页面小组件-搜索栏(一)

样例展示 效果示例-折叠状态 效果示例-展开状态 代码示例 <custom-search-wrapper><!--showFoldBtn 需要展示折叠按钮时传值--><template slotleft><el-form:model"searchFormData"inlinesize"small"><el-form-item><e…

前端入门了解

1. 网页 1.1 网页概述 1.2 超文本标记语言 1.3 网页的形成 2. 浏览器了解 网页需要通过浏览器来展示&#xff0c;下面是关于浏览器的两点; 国际上通用的浏览器有如下六个&#xff08;百度&#xff0c;360&#xff0c;uc等是主要在国内使用&#xff09;&#xff0c; 3. We…

828华为云征文:华为云 Flexus X 实例性能测评——SuperBench 一键窥见性能

今天我拿到了华为云 Flexus X 实例&#xff0c;这款云服务是华为云推出的有一款明星产品&#xff0c;面向零售、金融、游戏等行业大多数通用工作负载场景。这次&#xff0c;我们就来测评一下它的性能到底怎么样&#xff01; Flexus 云服务 X 实例 在测评之前&#xff0c;我们…

使用 JAXB 将内嵌的JAVA对象转换为 xml文件

使用 JAXB 将内嵌的JAVA对象转换为 xml文件 1. 需求2. 实现&#xff08;1&#xff09;FileDesc类&#xff08;2&#xff09;MetaFileXml类&#xff08;3&#xff09;生成对应的xml文件 1. 需求 获取一个目录下所有文件的元数据信息&#xff08;文件名、大小、后缀等&#xff0…

Day14_0.1基础学习MATLAB学习小技巧总结(14)——字符串的比较、查找和替换

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 素材来源“数学建模清风” 特此说明&#xff1a;本博客的内容只在于总结在…

香港一带一路研究院国际事务研究中心副主任陈景才阐述香港在一带一路建设及区块链金融领域的关键作用

2024年8月28日&#xff0c;香港金管局举行Ensemble项目沙盒&#xff08;以下简称沙盒&#xff09;启动仪式&#xff0c;并宣布首阶段试验将涵盖四大代币化资产用例主题&#xff0c;标志着金融业在代币化技术的实际应用进程中迈出重要一步。香港一带一路研究院国际事务研究中心副…

Tomato靶场渗透测试

1.扫描靶机地址 可以使用nmap进行扫描 由于我这已经知道靶机地址 这里就不扫描了 2.打开网站 3.进行目录扫描 dirb http&#xff1a;//172.16.1.113 发现有一个antibot_image目录 4.访问这个目录 可以看到有一个info.php 5.查看页面源代码 可以发现可以进行get传参 6.…

苹果抽佣30%,国产手机抽佣50%,而且国产手机联合抽佣更霸道!

随着苹果抽佣30%被炒作&#xff0c;吐槽苹果的越来越多&#xff0c;然而国产手机抽佣50%&#xff0c;却没有人说话&#xff0c;甚至还有人为国产手机辩护&#xff0c;说什么可以自由选择&#xff0c;然而他们忘记了国产手机联合成立了硬核联盟共同抽佣50%&#xff0c;想逃&…

c++162 类的封装和访问

怎么样管理类管理对象 类如何定义对象 #include<iostream> using namespace std;//求圆的面积 class MyCirecle { public:double m_r;//属性 成员变量double m_s; public :double getR(){return m_r;}void setR(double r)//成员函数{m_r r;}double getS(){m_s 3.14…

国庆主题——html5+css+js国庆头像框生成

国庆主题——html5cssjs国庆头像框生成 一、前言二、功能展示四、其它五、源码下载 一、前言 国庆头像生成器这个工具可以让我们制作最近非常火爆的国庆主题头像&#xff0c;有多重不同的风格供我们选择&#xff0c;我们可以在这里在线制作头像。 二、功能展示 如下所示&…

基于SSM+MySQL的民宿推荐系统

系统背景 随着经济发展&#xff0c;各类电子产品普及千家万户。网民数量不断增加&#xff0c;网络显然已经成为了人际交流的重要形式。回顾近一个世纪的科技发展史&#xff0c;各类新的信息发布手段均随着时代洪流更新。旧时代是广播&#xff0c;报纸&#xff0c;电视&#xff…

uniapp和vue3中使用vConsole在H5中开启移动端调试

uniapp和vue3中使用vConsole在H5中开启移动端调试 1. 安装vconsole npm install vconsole --save2. 在main.js中全局引入 重新启动项目即可

昂科烧录器支持Fortior Tech峰岹科技的电机驱动专用芯片FU6812V

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Fortior Tech峰岹科技的高性能电机驱动专用芯片FU6812V已经被昂科的通用烧录平台AP8000所支持。 FU6812V是一款集成电机控制引擎(ME)和8051内核的高性能电机驱动专用芯片&…

Android Auto未来可能支持无线电广播

通过Android Auto&#xff0c;可以在车载收音机上使用 Google 地图、音乐、收听播客&#xff0c;还能获取天气等基本信息。最近&#xff0c;国外科技媒体9to5Google通过分析 Android Auto v12.3 和 v12.4的应用程序的代码发现了一些提示信息&#xff0c;特别提到了 AM、FM、HD …

信创实践(2):利用Leapp工具迁移CentOS至AnolisOS,实现系统升级与自主可控

1. 引言 为了满足用户在CentOS退出后对操作系统使用的诉求&#xff0c;OpenAnolis龙蜥社区正式发布了Anolis OS。越来越多的CentOS客户期望能够迁移到Anolis OS上来。操作系统迁移是一个复杂工程&#xff0c;手工迁移技术要求高&#xff0c;操作复杂度强&#xff0c;需要耗费大…

《‌黑神话:‌悟空》‌游戏攻略‌

时光荏苒&#xff0c;岁月如梭&#xff0c;不知不觉已经来到了2024年的9月份了。 ‌突然想写一篇关于《‌黑神话&#xff1a;‌悟空》‌的游戏攻略‌。 在《‌黑神话&#xff1a;‌悟空》‌这款以中国古代名著《‌西游记》‌为背景的动作角色扮演游戏中&#xff0c;‌玩家将扮…

CSS学习13

CSS例子 学成网 需要使用的图片&#xff1a; 代码&#xff1a; <html><head><style>/*CSS初始化*/* { /*清除内外边框*/padding: 0;margin: 0;}ul {list-style: none; /*清除列表样式*/}.clearfix:before,.clearfix:after { /*清除浮动*/content: &qu…