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

杰理微蓝牙芯片AC696系列入门

1.文章背景此篇文章以ac696n_soundbox_sdk_v1.7.0版本进行入门讲解写这篇文章的目的是因为自己在尝试入门杰理微的时候遇到了好多的问题点想尝试用买到的开发板来驱动一颗LED闪烁却一直没有按自己想象的逻辑成功跑出效果在网上到处翻找手册教程以及B站上看了许多教学视频后都感觉没有一个能很好一步步带我上手的教程最后还是自己通过串口打印日志一步步对SDK的架构渐渐清晰也可能是因为自己比较惯性思维想以学习一款MCU跑裸机的方式一直在main函数的while(1) 主循环里面尝试IO口点灯导致卡在这里很久但我还是希望以学习一款MCU的方式来攥写这篇杰理微蓝牙入门的文章这样对有MCU基础的人会比较好理解可以更快上手。MCU开发入门流程一般就是1.了解对应MCU的最简外围电路及相关引脚外设功能2.下载MCU对应开发编译环境与工具链并熟悉3.熟悉对应程序框架及其启动流程4.掌握其程序烧录及调试方法5.通过MCU的IO口进行点灯操作2.正式学习1.以AC6969D蓝牙芯片搭建的一个最简蓝牙音箱为例进行了解无使用电池供电这颗IC只需要1颗24MHz外部晶振以及几颗电容就可以搭建起最简外围电路进行程序烧录了由于杰理微这款芯片本身就是以soundbox产品为定位所以其供电引脚定义也不是VCC或VDD了而是VBAT支持2.2V~5.5V电压供电VDDIO为其内部LDO给内部IO进行供电的引脚当VBAT为5V供电时实测VDDIO为3.3V,当外部有较小负载需要3.3V供电时也可以从这里取电手册建议最好不超100mA,至于每个管脚对应的硬件外设功能这里就不列出了网上到处可以找到对应芯片手册。2.下载对应开发编译环境及工具链及对应版本SDK较常用的开发环境有三种Code::blocks、VScode、Makefile,官网文档推荐使用Code::blocks我也就用了这种直接在杰理微官网的文档中心下载即可网址https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/dev_env/index.html至于AC696X系列的SDK由于官方并没有释放该资源所以我也不方便在这里提供资源了有需要的可以自己GitHub或码云上翻找一下还是能找到的。得到对应的SDK后解压后得到以下目录文件此文件即为对应的工程文件。3.熟悉SDK的程序框架及其启动流程首先我们找到该目录下的board_config.h,我们在该文件里面选择我们开启哪个模板来进行开发一般根据所使用的芯片来选择对应模板我用的是AC6969D芯片所以我就使能了对应的DEMO其他DEMO都注释掉了。使能该板级配置后我们就找到对应的DEMO头文件去里面使能我们需要用到的功能或者根据我们的实际硬件电路更改对应的配置参数关闭不需要用到的功能等然后我们要使用芯片的各种外设比如定时器timer、uart、spi、iic这些的话SDK也提供了对应的c文件程序模板其对应在该目录下我们可以新建一个.c文件定义我们自己要使用的函数也可以在SDK给出的.c文件里面直接定义或者更改其模板函数进行使用也行; 像MCU开发一样我们的外设初始化函数一般也是在main函数里面while(1)主循环之前进行调用我们找到目录下的app_main.c文件程序在经过一系列启动流程之后就会跑到该文件下的app_main()函数里面了启动流程图同时可以看到我们的主循环是在app_task_loop()这个函数里面这个函数会通过循环判断app_curr_task的值然后进入不同的任务去执行这个时候肯定会有人想着把要循环扫描的功能比如LED闪烁、按键检测这些放在这里是不是就轻松实现IO点灯功能和按键切换了一开始我也是这么想不过实际操作发现是不可行的因为app配置里面的任务比如蓝牙初始化过程中其是具有阻塞性的就是程序会卡在那里直到满足某个条件后才会继续进行或者退出然后再进入到这个while循环但是我们可以通过创建一个新的任务或开启一个触发中断的定时器来实现我们需要进行扫描的东西这里以开启一个定时器为例定时器相关封装函数位于timer.h文件里面通过在app_main()函数里面初始化开启一个定时器定时时间到达后就会触发中断执行中断回调函数rgb_led_timer_callback里面的内容对应timer.h里面的系统定时器开启函数此定时器开启后将一直存在不会因为进入一次中断就消失但是其无法阻止系统进入低功耗当我们的app配置里面无开启任何使能时系统就会因为判断为没有任务执行而自动进入低功耗那这个定时器里面要执行的内容也将无法执行了。下面这个用户定时器开启函数所开启的定时器就可以阻止系统进入低功耗同时其还可以设置中断优先级但是其每次开启后仅会触发进入一次中断需在中断回调函数中删除上次开启的定时器否则会造成内存堆积直到溢出报错然后再次开启该定时器这是我尝试不删除上一个定时器后串口输出的报错结果通过上述开启定时器的方式并在中断中进行扫描判断处理就可以完成我们大部分想要实现的功能了。4.掌握其程序烧录及调试方法杰理微烧录器原理为 USB通信强制进入ISD下载模式上电时序控制实际烧录时当芯片的VBAT脚如果接了大滤波电容的情况下由于会破坏上电时序所以基本很难识别到芯片所以建议最好采用空片烧录而不是带板子烧录或者在板子上预留跳接口当程序调试好后再把跳接口短接上。程序的编译和下载在Code::blocks是一体的按下F9后程序编译完识别到芯片后就会自动将程序下载进芯片要看到有显示正在write才是有在烧录程序进芯片在程序编译后如果没更改想要快速烧录也可以找到download.bat这个文件进行直接烧录调试方法一般采用串口打印数据观察程序动向要使用串口调试只需要做这两步就可以实现1.在app_config.h文件中使能lib总开关2.根据自己硬件uart的TX脚及通讯波特率在对应的demo.h文件里面修改uart配置参数像我之前串口打印发现程序跑到board_init()函数里面后串口就不输出数据了导致程序都没跑到app_main()函数里面我想要实现的功能全部没跑起来然后我就在board_init()函数里面每一句执行函数后面都进行数据打印最后发现开启了TCFG_UI_ENABLE后应该是里面重新定义使用了我的串口导致我的串口不输出数据了将这里disable之后就正常了5.使用IO口进行点灯操作这一步后面我让整个程序跑起来进入app_main()和学会定时器的创建使用之后就没有去尝试了而是直接尝试我想要的功能蓝牙连接播放音乐驱动RGB灯通过串口接收数据改变RGB的显示模式,同时回传特定数据给外部MCU后面我会再写一篇文章记录一下我的实现方式和程序这里先给大家看看效果文章结束

相关文章:

杰理微蓝牙芯片AC696系列入门

1.文章背景 此篇文章以ac696n_soundbox_sdk_v1.7.0版本进行入门讲解: 写这篇文章的目的是因为自己在尝试入门杰理微的时候遇到了好多的问题点,想尝试用买到的开发板来驱动一颗LED闪烁却一直没有按自己想象的逻辑成功跑出效果,在网上到处翻找手…...

电脑截图工具深度测评:PixPin、Snipaste、兔灵截图(Utools插件)

日常办公、写教程、做笔记,截图是高频刚需。Windows自带截图简陋,截图功能有限,精准标注、长截图、OCR识别等需求,需要专业工具来满足。 本文实测3款「免费无广告、口碑拉满」的截图工具:PixPin、Snipaste、兔灵截图&a…...

一条 SQL 干掉 8 秒卡顿,只因改了一个索引

一条 SQL 干掉 8 秒卡顿,只因改了一个索引 上周五晚上十一点,线上告警突然炸了,用户反馈下单接口卡成 PPT。打开慢查询日志一看,一条最普通的订单查询 SQL 居然跑了 8 秒多。当时我脑子里只有一个念头:这条 SQL 我上周才写的,测试环境明明只要 200 毫秒啊。排查了一整晚,…...

【Java入门|集合全解析:List、Set与Map详解】

Java集合Java集合分为单列集合和双列集合,也就是 Collection 和 Map 。顾名思义, Collection 一个位置上仅存放一个元素; Map 一个位置上有两个元素(分为键和值)。 Map 和 Collection 下又分别衍生出多种集合种类&…...

晶振参数深度解读与替代选型实战(55.2MHz 工业级无源晶振案例)

前言作为嵌入式 / 硬件 FAE,日常工作中晶振的参数解读、客户需求替代是高频场景。最近遇到一个典型的工业级宽温晶振客户需求,参数里藏着很多新手容易踩的坑,比如 “负频率” 的误解、负载电容不匹配、宽温范围忽略等问题。本文以客户的55.2M…...

Android 开发问题:It‘s possible to extract method returning XXX from a long surrounding...

在 Android 开发中,Android Studio 出现如下提示信息 Its possible to extract method returning TakeCardRecordListDTO from a long surrounding method# 解读可以从长方法中提取返回“TakeCardRecordListDTO”的方法问题原因这段提示是提取方法重构策略&#xff…...

推客系统开发|企业私域裂变刚需,低成本自动获客变现

公域投流成本居高不下、流量转化疲软,当下多数商家、企业都在转型私域运营。推客系统凭借低成本裂变、自动化运营、高留存等优势,成为企业盘活自有流量、实现自主拓客的核心工具。一、专属定制开发,适配各类业态支持个性化定制,自…...

别再只问哪个大模型更强了,2026年真正决定AI Agent上限的,是向量引擎

别再只问哪个大模型更强了,2026年真正决定AI Agent上限的,是向量引擎 这两年做AI的人,最容易掉进一个坑。 每天盯着模型榜单看。 今天这个模型会写代码了。 明天那个模型会看视频了。 后天又有一个模型说自己推理能力更强了。 看久了以后&…...

别再傻等!EPLAN部件库导入太慢?试试这个解压导入法,效率翻倍

EPLAN部件库高效导入实战:解压法与便携式部署全解析 电气工程师们对EPLAN的部件库导入速度缓慢一定深有体会——当你拿到一个几百兆的EDZ文件,点击导入后泡杯咖啡回来可能进度条才走了一半。这种等待不仅浪费时间,更会打断工作节奏。本文将彻…...

从“黑盒”到“白盒”:深入理解PHP伪协议php://input的底层机制与安全开发启示

从“黑盒”到“白盒”:深入理解PHP伪协议php://input的底层机制与安全开发启示 在Web安全领域,文件包含漏洞一直是攻击者青睐的攻击向量。而PHP伪协议php://input的巧妙利用,往往能让看似无害的文件包含操作演变为致命的远程代码执行漏洞。本…...

Zotero安装后必做的5件事:从浏览器抓取到PDF重命名,新手避坑指南

Zotero安装后必做的5件事:从浏览器抓取到PDF重命名,新手避坑指南 第一次打开Zotero时,面对空荡荡的界面和密密麻麻的菜单选项,很多科研新手都会感到无从下手。作为一款功能强大的开源文献管理工具,Zotero的真正价值往往…...

Microchip安卓配件开发平台:MCU与安卓系统高效协同实战指南

1. 项目概述:当单片机巨头拥抱安卓生态作为一名在嵌入式领域摸爬滚打了十几年的老工程师,我经历过从8位机到32位ARM,再到各种RTOS的变迁。但最近几年,一个趋势越来越明显:越来越多的智能设备,特别是那些需要…...

拓璞数控港股上市:市值142亿港元 年营收5.8亿,净利163万

雷递网 雷建平 5月20日上海拓璞数控科技股份有限公司(简称:“拓璞数控”,股票代码:“07688”)今日在港交所上市。拓璞数控此次发售6533万股,发售价26.39港元,募资总额为17.24亿港元;…...

港科大沈劭劼、谭平团队最新成果:开源280万全景数据集,实现零样本立体匹配

「一举攻克全景3D视觉两大瓶颈」 目录 01 行业痛点:数据匮乏与畸变失效的双重桎梏 1. 数据集稀缺,泛化能力受限 2. 球面畸变破坏单目先验一致性 02 核心突破:超大数据与航向对齐先验双驱动 1. 280万级合成数据集,打破数据壁…...

保姆级教程:在S32G274ARDB2上,用IPCF点亮RGB LED(附源码解析)

从零玩转S32G2核间通信:手把手实现IPCF控制RGB灯效 拿到S32G274A开发板的第一天,我就被那个三色RGB LED吸引了——这不仅是硬件调试的指示灯,更是验证核间通信的绝佳媒介。作为多核异构处理器,S32G2的A53与M7核心如何协同工作&…...

基于PSoC 6与BMI160构建嵌入式IMU测试系统:从驱动到上位机全流程

1. 项目概述:从一颗传感器到一个完整的测试系统最近在做一个嵌入式项目,需要用到一款高性能的惯性测量单元(IMU)——博世的BMI160。这颗芯片在消费电子和物联网领域很常见,三轴加速度计加三轴陀螺仪,精度和…...

告别MPU6050例程!ATK-IMU901与Arduino串口通信的3个关键避坑点

ATK-IMU901与Arduino串口通信的实战避坑指南 当你从MPU6050切换到ATK-IMU901时,可能会发现原本顺畅的代码突然"罢工"了。这不是你的错——这两款IMU模块在设计理念上存在本质差异。本文将带你深入理解ATK-IMU901的通信机制,避开三个最常见的移…...

cp520靶场学习笔记

正文1、端口扫描2、web登录页面用户密码爆破3、文件上传漏洞利用4、nc 反弹5、Linux用户检索与特权分析6、图片隐写7、解密与格式转换8、cp命令横向获取用户密码9、diff命令进行文件比较正文 kali攻击机地址:192.168.1.4 靶场地址:192.168.1.15 1、端口…...

AOCODARC-F7MINI飞控固件编译踩坑记:从‘make arm_sdk_install’失败到成功编译

AOCODARC-F7MINI飞控固件编译实战:从工具链安装到烧录全流程解析 1. 环境准备与工具链安装 编译BetaFlight固件最令人头疼的环节往往不是代码本身,而是环境配置。以Ubuntu 20.04为例,我们需要先解决两个核心问题:基础编译环境和AR…...

C++ STL常用函数一览表(快速记忆版本)

C STL 常用数据结构与函数整理 这份笔记按常见 STL 容器分类整理&#xff0c;适合在刷题和复习时快速查阅。1. vector 1.1 特点 底层是动态数组支持随机访问尾部插入、删除效率高中间插入、删除效率低 1.2 常用定义 vector<int> v; vector<int> v(5); /…...

不止是省9.9刀:解锁特斯拉Model 3的‘行驶中保持WiFi’功能,打造家庭移动娱乐中心

不止是省9.9刀&#xff1a;解锁特斯拉Model 3的‘行驶中保持WiFi’功能&#xff0c;打造家庭移动娱乐中心 特斯拉Model 3的车载4G网络虽然方便&#xff0c;但在信号不佳的区域或需要大流量娱乐的场景下&#xff0c;往往显得力不从心。更让许多家庭用户纠结的是&#xff0c;高级…...

STM32 HAL库驱动中景园0.96寸OLED(SSD1306)避坑指南:从IIC地址到GRAM刷新的完整流程

STM32 HAL库驱动中景园0.96寸OLED&#xff08;SSD1306&#xff09;全流程实战解析 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和快速响应等特性&#xff0c;成为许多项目的首选显示方案。本文将深入探讨如何基于STM32 HAL库高效驱动中景园0.96寸OLED&#xff0…...

Kimi、DeepSeek、阶跃星辰三天融资超百亿,中国AI的“中场战事”刚刚开始

过去一周&#xff0c;融资狂潮、智能体大军与算力基建三大赛道同时开火&#xff0c;天平正在加速倾斜。大模型调用量&#xff1a;连续三周&#xff0c;中国AI压住美国5月18日&#xff0c;根据OpenRouter最新数据&#xff0c;2026年5月11日至17日当周&#xff0c;全球AI大模型总…...

未来5年,程序员换工作,请做好降薪准备!

最近看到不少大厂的去年和一季度财报都公布了&#xff0c;不少人年终奖也发的差不多了&#xff0c;再加上金三银四也过了有一段时间了。按理来说&#xff0c;该晋升的晋升&#xff0c;该跳槽的跳槽&#xff0c;该加薪的加薪&#xff0c;基本尘埃落定&#xff0c;我公号后台应该…...

API 监控告警系统

LogMonitor - API监控告警系统 基于Python的智能API监控系统&#xff0c;集成Splunk日志分析和钉钉告警&#xff0c;支持多种API类型的实时监控和趋势分析。 代码地址 https://github.com/junbingliu007/log_monitor 功能特性 多API类型监控&#xff1a;支持多种API类型智…...

Midjourney × CLO 3D无缝协同方案(工业级打版前必读):实现AI草图→虚拟缝合→力学模拟零损转换

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Midjourney CLO 3D无缝协同方案&#xff08;工业级打版前必读&#xff09;&#xff1a;实现AI草图→虚拟缝合→力学模拟零损转换 在高精度服装数字样衣开发流程中&#xff0c;Midjourney生成的创意草图常因缺…...

企业级RAG系统数据可信生死线:Perplexity验证功能内测权限仅剩最后17个——附白名单申请通道

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;企业级RAG系统数据可信生死线&#xff1a;Perplexity验证功能内测权限仅剩最后17个——附白名单申请通道 在企业级RAG&#xff08;Retrieval-Augmented Generation&#xff09;系统中&#xff0c;检索结果与生…...

有这5个迹象,说明你公司内斗很严重!

见字如面&#xff0c;我是军哥&#xff01;昨天&#xff0c;一位读者小王给我留言。他在某大厂担任项目经理&#xff0c;最近工作推进得很艰难。同一件事开了好几次会&#xff0c;领导就是不拍板。跨部门协作费力不讨好&#xff0c;谁都不愿负责&#xff0c;项目卡在那里没有进…...

光纤干涉条纹投射导向的动态三维形貌测量技术【附程序】

✨ 长期致力于条纹投射轮廓术、光纤干涉条纹投射、正弦相位调制、任意步距相移相位解调、系统标定研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基于…...

Dify系列课程 - 5.Ollama:轻松驾驭本地大语言模型(在 Windows 上安装 Ollama 并部署 DeepSeek 大模型)

Ollama 安装Deepseek大模型 Ollama 大模型安装完成...