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

Microchip MPLAB AI助手体验

VScode中的MPLAB插件

尝试在VScode下进行Microchip MCU的开发笔记。
在这里插入图片描述
目前MPLAB已经有了很多的拓展,包括重要的:
1、MCC(代码生成工具)
在这里插入图片描述

2、AI Coding Assistant(AI 助手)
在这里插入图片描述

3、Data Visualizer(串口数据可视化工具)
在这里插入图片描述

        总体功能上,已经可以在VScode环境下进行Microchip的MCU的工程创建、导入,代码生成,编译、在线调试和下载固件了。完成完整开发流程不是。也可以期待后面能够弄出来什么更好的插件吧。


启用MPLAB AI助手

        为了体验AI助手,直接打开了一个之前MCC配置出来的代码工程。选用了ATTINY1616这个MCU,通过MCC添加了ADC外设,并对系统主频进行了配置,并无另外的设置。
        并且我们做一个假设,这个工程是别人给我们的,我们要去接手这个烂摊子,我们需要从熟悉这份代码开始。
在这里插入图片描述

1、打开工程

        使用VScode的打开文件夹功能,直接打开工程文件夹
在这里插入图片描述
在这里插入图片描述
        打开工程文件夹之后,MPLAB插件会自动识别,并弹窗询问是否要导入,如果是第一次用到的MCU,还会弹窗要求下载器件包。这些过程都是自动的,我们只需要简单看一下,选择Yes或者No。
在这里插入图片描述

在这里插入图片描述

2、界面说明

EXPLORER
        我们可以在这个界面,查看我们工程文件夹里面的各个文件,主要是看C和H文件。
在这里插入图片描述
MPLAB
        这个插件的界面,主要是看当前的工程配置,例如芯片型号(Device)、连接的调试器型号(Tool)、使用的编译器(Toolchain)(编译器link是需要独立安装的)
        点图中的小齿轮可以进入具体的工程配置界面,配置项和MPLAB X中差不多,这个大家自己看就好了。
在这里插入图片描述

3、使用AI

使用Ctrl + L呼叫AI助手面板
在这里插入图片描述
也可以鼠标框选一些代码之后,再Ctrl + L,这样这部分代码就会添加到对话窗口中,作为问题的一部分要素。
在这里插入图片描述

============================================================

任务1-分析使用了芯片哪些外设?

        拿到代码,首先会想要对其有个整体把握,看一下总共用到哪些外设,那就大概可以猜到这个代码是做什么用的了。
对工程整体进行分析,需要把聊天对象改成Agent
在这里插入图片描述
Q:这个工程里面一共用到了MCU的哪些外设?
在这里插入图片描述

A:
在这里插入图片描述
看起来除了必要的时钟、IO这类外设,另外用到了ADC,那这应该是个传感器相关的代码工程~

============================================================

任务2-分析主频?

        在不需要考虑低功耗的场合,通常我们希望MCU跑到最快的主频,这样代码运行速度有保障。
Q:现在代码配置的MCU主频是多少?是这个MCU的最大主频了吗?
在这里插入图片描述

A:
在这里插入图片描述
        结果准确分析出了当前配置的主频。并且在确认最大主频这个环节,是通过查找芯片手册这个方式来确认的,数据是具有可信度(还给了链接,点进去是Micorchip的官方网站)!并且给了一个非常核心的提醒事项,主频对供电电压和温度有范围要求,这个限制条件常见于8bit的MCU,如果不熟悉的工程师可能就忽略了这个因素。

============================================================

任务3-实现ADC采集

        代码使用到了ADC外设,通常我们采用定时的调用ADC采样来获取传感器数据并做运算或者记录。观察adc0.c代码,我们没有找到关于ADC函数调用的实例,但是根据经验,我们可以调用ADC单次采样函数来实现功能。那现在我们就需要把这个函数找出来。
        这里简单粗暴的,对着adc0.c按下再Ctrl + A,然后再Ctrl + L,把所有ADC相关代码都丢给AI。
Q:利用这里面的ADC单次采样函数,创建1s执行一次采样的传感器数据采集任务
在这里插入图片描述

A:
在这里插入图片描述
        AI助手一通分析,定位出来ADC0_ChannelSelectAndConvert()函数,那根据函数名字,可以确认这个确实是单次采样函数,并且这个函数还可以非常方便的切换选择的ADC通道。它还自动尝试去main.c添加对应的代码,代码添加的部分和有差异的部分用红色和绿色背景色高亮,观看起来十分方便,这里我们直接Accept All
在这里插入图片描述
贴上代码,供大家品鉴

#include "mcc_generated_files/system/system.h"
#include "mcc_generated_files/adc/adc0.h"
#include <stdint.h>// Demo: 1s blocking delay
static void delay_ms(uint32_t ms)
{while (ms--) {for (volatile uint16_t i = 0; i < 2000; i++) {__asm__ __volatile__("nop");}}
}// ADC采样函数,每秒执行一次采样(AIN0通道)
static void Sensor_Task_1s(void)
{adc_result_t adc_value = ADC0_ChannelSelectAndConvert(ADC_MUXPOS_AIN0_gc);// 可以在这里进行数据处理或上报,例如:打印、存储等// printf("ADC value: %u\n", adc_value);
}int main(void)
{SYSTEM_Initialize();while(1){Sensor_Task_1s();delay_ms(1000);  // 1秒采样一次}
}

============================================================

任务4-数据转换

        有些时候,传感器数据需要保存下来,通过媒体介质导出,为了便于我们观察,ASCII字符是常用的编码格式。
因为这个更像是通用的代码生成需求,在窗口中把聊天对象改成Chat,如下图左下角,这样AI助手不会直接和工程发生关系。
Q:帮我创建一个将16位无符号数转换成ASCII字符保存的函数
在这里插入图片描述
A:
在这里插入图片描述
        AI助手帮我创建了一个名为Uint16ToAscii()的函数,我们可以在代码窗口,把光标定位到想要添加代码位置(50行的位置),然后点AI助手提供给我们的代码右上角的Insert Code按钮,这样代码就出现在mian.c里面了。比起上一个任务里面的代码添加方式,相对的更加灵活。

============================================================

任务5-处理编译错误

按照前面步骤做下来,直接编译是没有错误的,那我们人为的写一些错误出来。
添加88和93行的调用代码。
在这里插入图片描述
点击界面右上角的按钮,选择Full Build。如预期的出现编译报错。

在这里插入图片描述

        根据不久之前的经验,我们可能会把编译输出的内容,全部复制,然后丢给Deepseek或者豆包之类的帮助进行分析,要是时间再往前一点,就要人工去找错误信息,然后把错误信息拎出来,去搜索引擎看看,指望着某个论坛的大佬解释过这个错误了。不过在这里我们可以更加方便的解决。
Q:@Terminal 帮我分析一下编译错误
在这里插入图片描述
A:
在这里插入图片描述
        这里用到了一个固定使用方式就是@Terminal,这会将AI助手的关注内容切换到TERMINAL窗口,也就是编译器输出信息的窗口。具体看一下AI针对错误的回复,也是准确的说出了问题所在,并且给出了修改方式。这个查询处理编译错误的方式,相比使用第三方AI,流程上更加的集中,体验不割裂。

============================================================

任务6-收尾

那在最后,让AI来点评一下我们的工作成果。
Q:代码整体有可以优化的地方吗
在这里插入图片描述

A:
在这里插入图片描述

在这里插入图片描述

        如果你仔细看AI给的反馈,都是非常有价值的信息。例如1s的延时不是定时器方式实现的、Uint16ToAscii()函数其实可以用标准库函数sprinf很方便的实现、以及提到了刚刚我们写出来的代码bug是有问题的。并且最后给出了修改后的主函数,我们可以更加直观的看到他给出的建议,应该怎么样在代码上去落实。

总结:

        Microchip推出的这个MPLAB AI Assistant,配套VScode环境下的MPLAB开发环境,打通了VScode环境下的Microchip的MCU开发全流程。结合VScode本身优良的代码编写体验,能够大大加快工程师开发速度。最重要的是MPLAB AI可以对整个工程的代码进行优化,而不是使用第三方AI需要在2个应用之间来回复制粘贴那割裂的使用体验。
        感受下来MPLAB AI助手是好用的,可以是中文的!中文的!中文的!极少数时候回复英文,也可以让他把上一个回答用中文再回复一遍,并且免费,实际使用也不需要挂梯子,基本没有使用门槛。

http://www.dtcms.com/a/550884.html

相关文章:

  • 做问卷的网站好烟台网站建设seo
  • wordpress仿模板完整的网站优化放啊
  • gbase8s的定时任务的使用方式基础版-创建简单的定时任务
  • 8款主流软件项目管理工具横向测评
  • 江西求做网站网站企业有哪些
  • 手机app与手机网站的区别wordpress设置内容标题
  • 手机网站的推广现代企业信息管理系统
  • 核货宝S2B2C系统核心优势:赋能B端,服务C端,驱动增长
  • Java 黑马程序员学习笔记(进阶篇22)
  • 网页制作用哪个软件宁波seo的公司联系方式
  • 如何理解不同行业AI决策系统的功能差异?
  • 长沙英文网站建设公司郑州大型网站公司
  • 建设部网站村镇建设口碑营销的产品
  • 网站建设网站模版广东省建设工程交易中心
  • 深圳网站建设培训班本科自考有哪些科目
  • RHEL 9.6 从源码安装 Open vSwitch 完整指南
  • 域名跟空间都有了怎么做网站网站的思维导图怎么做
  • 高端建站用什么软件菏泽 做网站 多少钱
  • 网站导航页设计标识设计公司排名
  • 【符号论】群的概念与五行关系的循环群结构
  • 宜兴网站建设价格信息做海报的素材那个网站比较好
  • 网站开发用到的技术上海网站建设上海
  • 昆山高端网站建设咨询设计公司职位
  • 你问GeeLark答 QA 第8章
  • 南京360推广 网站建设网页视频加速器
  • 有谁知道网站优化怎么做南宁网站建设信息推荐
  • 永川区网站建设名词解释搜索引擎优化
  • 点云深度学习:KPFCNN(Kernel Point Convolutional Neural Network)
  • Rust:类型 impl
  • STM32项目分享:避障小车设计