本帖最后由 hcm0915 于 2026-8-11 11:27 编辑
前言
这篇文档面向天问Block用户,手把手教你怎么用天问Block AI版内置的AI编程助手,对各类芯片进行快速开发和编程。不需要你有多强的编程基础,只要你能把需求说清楚,AI就能帮你搞定!
一、这个AI助手是干嘛的?
天问元智是天问Block AI版里内置的AI编程助手,支持天问Block平台下的多种芯片开发板; 它能做的事,包括但不限于: - 根据你说的话,自动生成对应芯片的C/C++/python/程序
- 自动处理芯片特有的配置,支持各类外接硬件模块
- 自动编译并下载,还能检测程序是否有错误
- 支持各类文件处理、系统操作工具
- 支持分析代码问题,提供项目方案与优化建议,生成知识文档
- 支持根据头文件制作自定义扩展库
你不需要从零开始写代码,只需要用自然语言描述你想做什么就行。 【注意:AI编写的程序默认为当前选择主板的芯片服务,每个主板内置的都有对应的提示词与技能。如果需要给其他芯片编写程序,请切换到对应的主板。】
二、在哪里找到AI助手
打开天问Block AI版,选择你要使用的开发板型号,你会看到右侧有一个AI小机器人。 
点击这个小机器人,登录账号(需手机认证),就可以开始和AI交互了。
三、界面布局说明
进入AI编程助手界面后,界面主要分这几个区域: 常规使用
在AI对话窗口的最下方,输入你想完成的功能,回车或者点击执行按钮,即可开始使用AI编程助手。 快捷指令区
在AI对话窗口的下方,有一些快捷按钮: 附件:
点击附件后,即可在AI编程的要求中,添加需要的文件,文件支持以下格式:(*.hd *.png *.jpg *.jpeg *.gif *.bmp *.webp *.pdf *.txt *.md *.json *.csv *.log *.xml *.yaml *.yml *.ini *.py *.js *.c *.h .cpp ) 提示词:
每个芯片都有对应的提示词,你可以使用这些常见词减少打字时间,又或者是在已有程序的基础上做局部修改。比如你已经有了一段代码,想改一下引脚配置,直接点相应的指令就行。 新手使用时,也可以先体验一下入门必做案例,方便快速了解AI编程助手。
模型切换: 对于快速模型和思考模型,各有优劣,在芯片开发各类场景中,如果只是简单生成常规代码,推荐使用快速模型,效果好速度快;如果项目较为复杂,涉及复杂算法或疑难处理,推荐使用思考模型。
四、使用流程完整示例示例:ASRPRO语音控制红外发射
需求: 用语音控制红外发射对应的NEC码。 在AI对话窗口输入: 编写一个语音控制红外发射NEC码的程序 AI会自动生成完整的程序,包括: - 语音配置(播报人、欢迎语、退出语)
- 唤醒词和命令词定义
- 引脚初始化
- 识别回调处理逻辑
我们来仔细看看,AI编程助手都做了什么 首先AI自行确认需求,并找到了对应的红外发送库。这里的库是官方提供,如果你有额外提供的资料,可以添加在附件中,方便AI了解相关信息。 了解完红外相关资料后,AI会确认具体需求,在遇到不明确的需求时,会触发ask_user用户提问。比如这里AI就向用户进行了提问。 我这里选择了先测试,发送一些典型的NEC码,尝试控制电视。选好后,务必点击确认回答。如果AI没有提供你想要的选项,你可以直接在自定义回答中填写你想要实现的效果。 确认需求后,AI会开始编写代码到前端编辑器,并进行编译测试。 AI会同时自检。这里ASRPRO比较特殊,需要先生成模型再手动下载。其他主控AI测试后会自动进行下载。 我们可以看到,我们全程没有用到专业的术语,但可以完成最后的功能;AI编程助手会在最后进行一个总结,描述程序功能、硬件连接、代码逻辑等。
下方是AI生成的第一版代码。之后生成模型,下载程序即可使用。后续根据实际情况进行二轮调试。 - #include "asr.h"
- extern "C"{ void * __dso_handle = 0 ;}
- #include "setup.h"
- #include "myLib/asr_IRSendRev.h"
- uint32_t snid;
- void ASR_CODE();
- // 创建红外发送对象
- IRSendRev infrared;
- //{speak:小蝶-清新女声,vol:10,speed:10,platform:haohaodada}
- //{playid:10001,voice:欢迎使用语音助手,用天问五幺唤醒我}
- //{playid:10002,voice:我退下了,用天问五幺唤醒我}
- /* 语音控制红外发射NEC码程序
- * 功能:通过语音命令发射对应的NEC红外码
- * 引脚:PA4(PWM2通道)作为红外发射引脚(需外接红外发射管电路)
- * NEC码值:地址0x00,命令值见各case
- */
- void ASR_CODE(){
- // 设置唤醒退出时间10秒
- set_state_enter_wakeup(10000);
- // 用switch分支选择,根据不同的识别成功的ID执行相应动作
- switch (snid) {
- case 1: // 打开电视
- infrared.send_nec(0x00, 0x45);
- break;
- case 2: // 关闭电视
- infrared.send_nec(0x00, 0x46);
- break;
- case 3: // 频道加
- infrared.send_nec(0x00, 0x43);
- break;
- case 4: // 频道减
- infrared.send_nec(0x00, 0x44);
- break;
- case 5: // 音量加
- infrared.send_nec(0x00, 0x40);
- break;
- case 6: // 音量减
- infrared.send_nec(0x00, 0x41);
- break;
- }
- }
- void hardware_init(){
- // 硬件后初始化:在操作系统(rtos)启动后运行的硬件配置函数
- vol_set(7); // 设置播报音量为7(最大)
- // 红外发送使用PWM2通道(PA4引脚,复用功能5)
- setPinFun(4, FIFTH_FUNCTION);
- infrared.begin(PWM2);
- vTaskDelete(NULL); // 任务删除:删除当前任务句柄
- }
- void setup()
- {
- // 系统入口:在操作系统启动前执行的主配置函数
- //{ID:0,keyword:"唤醒词",ASR:"天问五幺",ASRTO:"我在"}
- //{ID:1,keyword:"命令词",ASR:"打开电视",ASRTO:"好的,马上打开电视"}
- //{ID:2,keyword:"命令词",ASR:"关闭电视",ASRTO:"好的,马上关闭电视"}
- //{ID:3,keyword:"命令词",ASR:"频道加",ASRTO:"好的,马上执行"}
- //{ID:4,keyword:"命令词",ASR:"频道减",ASRTO:"好的,马上执行"}
- //{ID:5,keyword:"命令词",ASR:"音量加",ASRTO:"好的,马上执行"}
- //{ID:6,keyword:"命令词",ASR:"音量减",ASRTO:"好的,马上执行"}
- }
复制代码
五、和AI对话的技巧
5.1 需求描述越具体越好
模糊的描述(AI可能会追问,也可能会自己帮你选引脚): 帮我做一个控制灯的程序
清晰的描述(AI直接出代码): 帮我做一个程序,PA0接LED灯,每秒闪烁一次,PA1接按钮,按下按钮时LED状态翻转
5.2 可以分步骤追加功能
不需要一次把所有需求说完,可以先做一个基础版本,再逐步加功能: 第一步:先帮我写一个PA0控制LED闪烁的程序
第二步:再加一个PA1接的按钮,按下按钮切换闪烁频率
第三步:串口把当前状态打印出来,然后检测
5.3 可以直接改已有代码
如果AI生成的代码里有需要微调的地方,你可以: - 直接在代码编辑区手动修改
- 或者在AI对话里说"把PA0改成PA2",让AI帮你改
- 这里的修改不仅仅是引脚,还可以多样化,比如ASRPRO,你可以直接让AI修改唤醒词、提示词、播报人
5.4 可以让AI解释代码
对生成的代码有疑问,或者有专业术语看不懂,直接问: 这段代码里的setup函数是干什么的?
SPI是什么意思?
5.5 编译出错了怎么办
如果编译报错,AI会自动分析错误并尝试修复。遇见无法完成或者经常报错的,你可以: - 简化需求,先把核心功能做出来
- 你贴出报错信息,AI再分析
5.6 附件与保存
如果你需要完成的任务是一些专业性比较强的任务,推荐你附带更多的资料文件,方便让AI参考; 你可以选择添加附件,也可以复制文件地址让AI去阅读。AI掌握的资料越充足越正确,最终生成的代码效果越好。
六、常见问题
Q1:AI生成的代码能直接用吗?
能。AI生成的代码会经过自动编译检查,编译通过就可以直接烧录使用。
Q2:不同开发板的代码能通用吗?
不能直接通用。不同芯片的寄存器、API、引脚定义都不同。但你可以跟AI说"把这个程序改成ESP32-C3版本的",AI会帮你转换。
Q3:我想换开发板怎么办?
在天问Block软件里切换开发板型号,然后重新开始对话。AI会根据新的开发板生成对应的代码。
Q4:怎么添加外接传感器?
直接告诉AI你用的是什么传感器、接在哪个引脚。比如"用DHT11测温度,数据引脚接PA2"。AI会自动引入驱动库并生成读取代码。
Q5:代码里的注释能删掉吗?
普通注释(//开头的说明文字)可以删,不影响编译。但部分信息,比如ASRPRO的语音配置格式的"注释"(如//{speak:...}、//{playid:...}、//{ID:...})不能删,这些是编译系统要读取的配置信息,虽然看着像注释,但实际上是代码的一部分。
Q6:能不能同时控制多个硬件?
可以。比如同时控制LED灯、继电器、OLED显示屏,只要引脚不冲突就行。跟AI描述清楚每个硬件接在哪个引脚上,或者让AI帮你决定。
Q7:程序烧录后没反应怎么办?
检查以下几点: - 供电是否正常(USB供电或外部供电)
- 接线是否正确(特别是电源和地)
- 下载器/烧录器是否连接正常
- 选择的开发板型号是否和实际硬件一致
Q8:怎么修改已有程序的功能?
AI编程助手支持多轮对话。两种方式: - 在AI对话里说"把xxx改成yyy",让AI帮你改
- 你也可以选择直接在代码编辑区手动修改,改完重新编译
Q9:AI支持哪些编程语言?
目前主要支持C、C++、Python等常见语言。不同开发板使用的语言可能略有不同:
七、注意事项(必看)- 左侧的菜单栏,可以快速到达天问Block文件夹,用于查看部分生成的程序和文件。
- 点击新对话后,之前的上下文会删除,需要额外注意。
- 软件关闭后,AI对话过程暂时不支持自动保存。请及时将程序和沟通过程保存到本地文件夹。你可以和AI编程助手说:请你将刚刚的程序和沟通过程保存到xxx文件夹。AI编程助手会自动下载程序到文件夹并生成md文档。
- 右上角设置,正常情况下可以不作改动,有需要再改;勾选思考模式可以看见AI编程助手的思考过程。
以上就是天问元智AI编程助手的完整使用指南。有问题欢迎在帖子下面留言讨论。
|