千逐. 发表于 2025-5-10 15:21:51

AI8051学习心得

第一章:序言

当我踏入单片机领域时,AI8051U 成为了我的启蒙芯片。它不仅让我接触到了更高级的芯片知识,还为我打开了项目开发的大门。在对比 STC32G 与 AI8051U 后,我发现 AI8051U 的优势十分明显,让我对其项目开发充满期待。

AI8051U 搭载了功能强大的 flash 编辑器,不仅可以实现屏幕显示,还能支持视频播放。这意味着它可以轻松应对多种交互场景,例如在智能设备中显示动态教程或广告,极大地丰富了用户体验。在音频处理方面,它支持 IIS 录放音,能够高效地采集和回放音频数据,无论是语音输入还是音乐播放,都能轻松应对。

在灯光控制方面,AI8051U 的 PWM_DMA 功能表现出色。与 STC32G 通过 spi_dma 驱动 WS2812 灯珠相比,AI8051U 的 PWM_DMA 不仅效率更高,还能优化资源配置,更适合复杂的灯光控制需求。此外,它还支持 FFT 预算功能,这对于音频信号分析等运算场景具有重要意义,例如在音乐分析或声音监测中,可以实现更精准的频率分析。

AI8051U 还支持 QSPI 接口,能够与外部 FLASH 高速通信,极大地拓展了数据存储与读取能力。这使得它在处理大量数据时更加高效,例如在视频存储或音频库管理中,QSPI 的高速通信能力可以确保数据的快速读写。

AI8051U 的这些特性使其成为开发动态音乐灯光控制器的理想选择。它可以实现音乐与灯光的完美同步,通过音频分析控制灯光效果,并通过屏幕显示提供交互界面。我相信基于 AI8051U 的开发,一定能打造出一款极具潜力的动态音乐灯光控制器。


第二章:编译软件的安装与硬件及工具介绍
编译软件的安装安装 AI8051U 的编译软件,我通过视频教程学习了安装与配置的方法。为了方便大家获取安装包,我整理了 C51、C251 等版本的兼容安装包,链接如下:

[*]keil 安装包兼容版本:链接,提取码:1111
[*]视频教程:keil5-MDK+C51+C251 三个版本的兼容性安装
硬件及工具介绍硬件配置USB 接口:开发板配备 USB_TYPEA 和 USB_TYPEC 接口,均可与电脑通信并下载程序。usb 转双串口:采用 stc 自研芯片,实用性强。TF 卡插座:支持外扩 TF 卡,便于搭建文件操作系统。示波器 BNC 输入:功能暂不明确,后续需深入研究。音频接口:包含立体声输出和咪头输入,结合 IIS 功能,支持语音播放。显示与指示:板载 8 段数码管和 8 位流水灯。其他功能芯片:板载 RTC 芯片、红外接收头。键盘:一路 2*4 矩阵键盘,一路 16 位 ADC 键盘,以及 T0、T1 键盘和 INT0、INT1 键盘,按键功能丰富。TFT 屏插座:预留插座,支持屏幕显示。掉电监测:支持掉电监测功能存储芯片:板载 EEPROM 芯片和 QSPI flash 芯片。软件配置开发软件:主要使用 keil5。SPI 软件:到 stc 官网下载最新版本,并添加 AI8051U 芯片头文件。中断扩展插件:下载 keil 中断扩展插件并进行中断号扩展。代码包和手册:到 stc 官网下载代码包和手册,结合使用。

第三集:点亮一个LED
这一章主要是建立一个工程然后进行点亮一棵LED灯。



第四集:USB不停电下载
USB不停电下载这一部分对于我们馨新入门的小白来说可能难度确实有点大,但是,这一节的代码我认为不需要强行去记忆,我们每次需要用时直接将那些关键代码进行复制粘贴就行了,不需要去记忆,只需要大概的了解一下是怎么使用的就行了。

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";


usb_init();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;                                                                                        //IE |= 0X80;
      
      while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置
      
      while(1)
      {
               
      if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();
      }

第五集:C语言基础
这一节对于刚入门的新手而言我认为是非常重要的,将我们之前杂乱的知识点进行了一个梳理。让我们C语言运算符的基础知识更加牢固。





第六集:I/O口的输入与输出
这一节主要掌握I/O口的配置方法,理解每一种I/O口模式的功能等。
https://www.stcaimcu.com/forum.php?mod=image&aid=96010&size=300x300&key=640b8d9878b46f04&nocache=yes&type=fixnone 高电平——VCC
低电平——0V
   设置端口的模式



第七集:定时器中断
对于初学者需要了解定时器的工作原理以及如何配置正确的定时器等。
1.定时器的介绍
2.定时器的应用
3.函数的定义、声明、调用
定时器
(1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
(2) 替代长时间的Delay,提高程序的运行效率和处理速度(可以打断主循环)


https://www.stcaimcu.com/forum.php?mod=image&aid=96013&size=300x300&key=8dba89237451812d&nocache=yes&type=fixnone



页: [1]
查看完整版本: AI8051学习心得