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

CW32L012的智能语音灯控实现案例分享

前言:本实验基于CW32L012主控,搭配AI语音CI-03T模块进行语音控制灯光开关的实验。

一、实物展示:

二、模块介绍:

所需硬件:CW32L012主板,CI-03T AI大模型语音模块,LED灯,电源

本实验实现逻辑:第一,通过在线配置语音模块通讯协议以及语音指令。第二,配置好单片机端串口通讯协议需与语音模块一致。第三,插上LED灯的两个引脚并在单片机端配置点亮熄灭逻辑。第四,上电说语音指令,语音模块发给单片机端并由单片机端点亮熄灭LED实现智能语音灯控。

下附智能公元的智能语音在线配置内容:

三、软件讲解:

下附单片机端串口通讯程序:

#include "cw32l012.h" #include "cw32l012_sysctrl.h" #include "cw32l012_gpio.h" #include "cw32l012_uart.h" #include "OLED.h" #include <stdio.h> #define SYS_CLK_HZ 4000000UL #define VOICE_BAUD 9600 volatile uint8_t g_last = 0; // 最近收到的字节 volatile uint16_t g_cnt = 0; // 进中断次数 void LED_Init(void) { __SYSCTRL_GPIOA_CLK_ENABLE(); GPIO_InitTypeDef g = {0}; g.IT=GPIO_IT_NONE; g.Mode=GPIO_MODE_OUTPUT_PP; g.Pins=GPIO_PIN_6; GPIO_Init(CW_GPIOA, &g); PA06_SETLOW(); } void UART_Init_Voice(void) { __SYSCTRL_GPIOA_CLK_ENABLE(); __SYSCTRL_UART1_CLK_ENABLE(); GPIO_InitTypeDef g = {0}; g.Pins=GPIO_PIN_3; g.Mode=GPIO_MODE_INPUT; GPIO_Init(CW_GPIOA, &g); PA03_AFx_UART1RXD(); UART_InitTypeDef u = {0}; u.UART_BaudRate = VOICE_BAUD; u.UART_Source = UART_Source_PCLK; u.UART_UclkFreq = SYS_CLK_HZ; u.UART_Mode = UART_Mode_Rx; UART_Init(CW_UART1, &u); UART_ITConfig(CW_UART1, UART_IT_RC, ENABLE); UART_ClearITPendingBit(CW_UART1, UART_IT_RC); NVIC_SetPriority(UART1_IRQn, 0); NVIC_EnableIRQ(UART1_IRQn); } int main(void) { SystemInit(); __enable_irq(); LED_Init(); OLED_Init(); OLED_Clear(); UART_Init_Voice(); while (1) { OLED_Printf(0, 0, OLED_6X8, "RX = %02X ", g_last); OLED_Printf(0, 16, OLED_6X8, "CNT= %d ", g_cnt); OLED_Update(); } } /* ★函数名与启动文件一致:UART1_IRQHandler */ void UART1_IRQHandler(void) { if (UART_GetITStatus(CW_UART1, UART_IT_RC) != RESET) { UART_ClearITPendingBit(CW_UART1, UART_IT_RC); g_last = UART_ReceiveData(CW_UART1); g_cnt++; if (g_last == 0x01) PA06_SETHIGH(); if (g_last == 0x02) PA06_SETLOW(); } } void assert_failed(uint8_t *file, uint32_t line) { while(1); }

四、总结与建议:

1.AI语音端和单片机端需要对好通讯协议保证收发一致,以及波特率也要保持一致。

2.LED灯的引脚需要正确插在单片机的引脚上,否则会不亮。

3.下达语音命令时要按照规定好的内容下达并且吐字尽量清晰。

http://www.jsqmd.com/news/1093489/

相关文章:

  • 腾讯云大数据携手工商银行——存算分离架构落地实践,共绘数智金融新蓝图
  • 2026年最新|大模型备案资料规范指南
  • 从单线程到多线程 IO,Redis 7.2 到底快了多少?
  • LLM 幻觉问题全面解析
  • 2026年苍蓝前线最新礼包码有哪些?速来了解兑换秘诀!
  • DataBuff 发布 v0.1.1 稳定版:5 分钟跑起,AI 排障与 OpenTelemetry 能力亮点十足
  • 从0开始学梯形图:10个经典案例,一次讲透!
  • C/C++ 堆与栈的区别——面试完整知识体系
  • 怎么知道供应商在不在行业黑名单里
  • 密码学 | 数字签名进阶:Schnorr签名的线性之美与密钥聚合
  • 【课程设计/毕业设计】基于 SpringBoot+Vue 的毕业项目进程管理系统设计与实现 前后端分离的毕设文档审核进度管控系统【附源码、数据库、万字文档】
  • 【计算机毕业设计案例】基于 SpringBoot 的乡村文旅民宿资源管理平台 面向乡村旅游的民宿预订服务系统设计与实现(程序+文档+讲解+定制)
  • 终极指南:如何用Nucleus Co-op免费实现PC游戏分屏多人同乐
  • c语言项目驱动学习--实例化(图书管理)--002-代码对比
  • 学完各类AI课程仍无法落地企业项目?核心短板从来不是工具操作
  • 录音转写太慢效率低?语音识别软件性价比关键评估
  • 为什么 CPU/内存指标不足以支撑真实业务伸缩
  • 软硬一体销售会话分析软硬件一体方案选型与落地参考
  • 长春新房除甲醛避坑!普尔净教你分清通风和专业治理的差距
  • PG 日报|PGConf.EU 2026 开启预约
  • GPT 付款失败怎么办?国内信用卡无法绑定时有哪些替代方案
  • MITK在windows平台的构建
  • SystemVerilog包(package)的三大引用方式与实战场景解析
  • 如何将 HTML 转换为可编辑的 Word 文档(无需安装软件)
  • 从零搭建最简pytest+Playwright UI自动化测试框架
  • Python自动化工具实战:从零构建B站抢票脚本的完整指南
  • 【课程设计/毕业设计】基于 SpringBoot 的餐厅前台点餐后台管理系统 轻量化餐饮订单服务管理系统设计与实现【附源码、数据库、万字文档】
  • 未来真正赚钱的AI项目,往往都长得不像“AI项目”
  • 如何从Redmi恢复已删除的文件:4种简单方法
  • vitest + vue3 踩坑记录