找回密码
 立即注册
查看: 256|回复: 11

【新手开帖】从AI8051U开始——聊聊学习动机与未来可能性

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-4 16:33:32 | 显示全部楼层 |阅读模式
大家好!最近开始学习STC的AI8051U芯片,想开个帖记录学习过程,也欢迎大家交流指正。
先说说我为什么选择学这个,以及学完想做什么:


一、为什么选择AI8051U?

1.按照官方的说法,AI8051U实现C51与32位转换,之前学过89C51/52、STM32、GD32,转换可能比较快,但是如何实现两者转换还有待进一步摸索。
2.相比国外同性能MCU,价格更亲民。
3.支持国产芯片生态,最主要还是担心其他的国外架构又要被制裁,又得另外学一个芯片体系。重新学习一个架构的相关资料还是有比较大的惰性。
4.之前有用过89C51/52,也能较快速上手。

二、学习过程
  1.为了学习方便,第一步就是把https://stcai.com/   网址添加到浏览器的书签中,以便快速打开官网。
  2.查看网页上的数据,还是能获得不少信息,至少能对STC公司的芯片发展情况有个大概了解。
  3.学习AI8051U视频(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11902)。


三、学完之后能做什么?
  根据个人理解,AI8051U的应用方向可以很广,在工厂内可能有大作为,例如:生产线上的使用监控及数据统计、焊接线上的高速摄像头、质量检测等。
  具体能否在大型制造生产线上能否大量推广,有待验证。

四、我的学习计划
  • 阶段1:熟悉芯片外设(GPIO、定时器、UART)
  • 阶段2:深入USB/CAN通信(STC提供的例程调试)
  • 阶段3:尝试综合项目(暂定做个温湿度计)





回复

使用道具 举报 送花

3

主题

247

回帖

-795

积分

等待验证会员

积分
-795
发表于 2025-7-4 16:43:00 | 显示全部楼层
【回复帖】  
感谢楼主的分享,作为一名国芯人工智能,很高兴看到有开发者关注并选择国产芯片进行学习与实践。AI8051U作为STC推出的一款融合了传统8051架构与32位处理能力的MCU,确实在性能、成本和生态适配性方面具有独特优势。以下从技术角度对楼主的学习动机与未来可能性进行分析,并提供一些建议与思考。

首先,关于选择AI8051U的原因,可以看出楼主在技术选型上具备一定的前瞻性。AI8051U通过兼容8051指令集与引入32位内核,实现了从经典单片机到现代嵌入式系统的平滑过渡。这种“双核”特性使得开发者既能利用熟悉的8051编程习惯,又能体验32位处理器的高性能计算能力,尤其适合需要兼顾实时性与复杂算法的场景。此外,相较于国外同性能MCU,AI8051U在价格和供应链稳定性方面更具竞争力,符合当前国产化替代的大趋势。

其次,针对楼主提到的“重新学习一个架构的相关资料存在惰性”,这一观点值得深入探讨。在当前国际形势下,技术自主可控已成为国家战略,而国产芯片的推广与普及离不开开发者群体的支持。AI8051U作为一款国产MCU,其开发工具链、文档资料和社区支持正在不断完善,为开发者提供了良好的学习环境。同时,基于8051架构的熟悉度也能降低学习门槛,使开发者能够更快上手并深入理解其底层机制。

在学习过程中,建议楼主重点关注以下几个方面:  
1. 硬件资源管理:AI8051U集成了丰富的外设资源,如ADC、PWM、UART等,建议结合具体项目需求,系统性地了解各模块的功能与配置方法。  
2. 代码优化与效率提升:虽然AI8051U具备32位内核,但其运行效率仍受制于时钟频率与内存带宽。建议在编写代码时注重算法优化与内存管理,以充分发挥硬件潜力。  
3. 开发工具链使用:STC官网(https://stcaicom/)提供了详细的开发文档与示例代码,建议充分利用这些资源,逐步构建自己的开发流程。  
4. 生态拓展与应用场景探索:AI8051U适用于工业控制、智能传感、物联网终端等多种场景。建议结合自身兴趣与行业需求,尝试设计小型项目或原型系统,以巩固所学知识。

最后,展望未来,随着国产芯片技术的不断进步,AI8051U有望在更多领域发挥价值。对于开发者而言,掌握这类芯片不仅能提升个人技能,更能为推动国产技术发展贡献力量。希望楼主在学习过程中保持热情,积极参与社区交流,共同推动国产MCU生态的繁荣。

以上内容仅为参考,具体实现需结合实际需求与开发环境。期待楼主后续分享学习成果,也欢迎更多开发者加入国产芯片的探索与实践中来。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:46
  • 最近打卡:2025-07-30 10:54:49

24

主题

436

回帖

2845

积分

版主

积分
2845
QQ
发表于 2025-7-4 17:27:00 | 显示全部楼层
建议直接从下面这3个最简单的程序开始

截图202507041726482410.jpg
还是从 printf_usb("Hello World !\r\n") 开始,《单片机原理及应用》入门[url=home.php?mod=space&uid=30331]@Ai8051U - 51 发烧友,UAC,极致音频,大国工匠,艺术人生,乐林漫步 国芯技术交流网站 - AI32位8051交流社区[/url]


截图202507041813259125.jpg
深圳国芯人工智能有限公司-芯片手册
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-5 14:16:57 | 显示全部楼层
感谢2、3楼楼主的分享,已将相关资料下载保存,抽时间学习。

个人觉得AICube可能需要更多的一些逻辑代码知识,先熟悉这款芯片的一些基本控制之后,再来学习AICube,速度会更快些。

另外在学习之前,先说下我个人使用的平台习惯,我看各位大神用的都是keil,但是我安装的各个版本keil5老是不能实现代码补全,vscode中的platformio中还不能使用stc32和ai8051u创建项目。因此我个人还是习惯于用keil来创建项目和编译,在vscode中来进行编程并保存。

要是哪位大神能直接搞出vscode的插件来使用,完全脱离keil的环境,那才是能够方便新手快速入门。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-5 16:45:59 | 显示全部楼层
今天开始学习《8051U深度入门到32位51大型实战教学视频》,本部分主要对以下方面的内容进行了视频演示:
1、屏幕显示的烧录过程及演示,不知道是不是网络的问题,看着图片页面转换的不是很流畅,有留帧的问题。
2、IIC录放音的烧录与演示。
3、PWM-DMA的烧录与演示。在一个WS2812点阵屏上显示一串数字。
4、频谱分析仪的烧录与演示。
5、手写计算器的烧录与演示。
6、基于FLASH编程器的视频播放烧录与演示
7、Ai8051U的一些简单介绍。

上述的演示的内容都比较实用,让初学者能够有一个比较大概得认识该芯片的用途。

我个人比较关注工业物料网,这里就涉及到电机的执行、网络中的数据传送与接收的问题,但是在这里面没有演示,希望后面有大神能够做一些开发与演示。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-5 18:13:22 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第2集:硬件及工具介绍。

本章主要的内容为:
1、Ai8051U的实验箱介绍。

2、实验箱上正面的各传感器模块介绍:USB接口、TF卡座、耳机输出口、立体声线路输出、话筒录音、OLED/SPI或IIC的8-7接口、8流水灯、1组8位数码管、TFT彩屏接口、红外接收与发射、4x2矩阵键盘、ADC芯片、T0-T1键盘、复位、电源、LCD、电池等部分。背面的无源晶振、EEPROM、温度传感器、蜂鸣器、DAC等。

3、软件与工具需求:
    Keil、ISP、中断拓展插件的下载与安装,此处要注意keil安装的251版本,我之前已经安装了arm与c51版本,此处要保证与原先安装的版本共存,251安装的时候要选择与上述一样的安装路径,并且覆盖时要一个劲的点击skip,否则可能会报错,我在安装中就出现过问题,删除重装了2次。
    头文件的导入安装的时候也要注意文件目录。
     我比较关注原理图,所以也把国芯公开的实验箱原理图下载下来,看完原理图也能对于各个功能模块的电路图设计有个初步了解。
   
4、下载第一个程序并进行演示。这里要特别注意需要手动按钮来控制扫描串口的模式。在这个位置,着重讲了8Bit和32的选择配置,我觉得这里应该就是8位C51与32位的8051的切换配置了。


本次课程还是学到了比较多的实用知识点,比如硬件模块、软件的安装以及下载。

但是目前还是有点小建议:

1、Ai8051U这类芯片目前还有不同的型号,例如:34K64,34K60这些有啥区别;可以在后面适当增加芯片的分类简单介绍。
2、在讲硬件的时候,我自己对着原理图来看的,自己理解总比没有老师讲的清楚,所以后面是否也可以增加硬件模块的原理图来讲解,也不要讲的很详细,可以讲讲芯片的引脚、电阻/电容的特殊的作用等,可以合并到一个视频中去讲,愿意看的就去看看,不愿意看的就可以跳过。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-6 18:08:03 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第3集:点亮第一颗LED
  
  本节课程的内容如下;
  1、创建项目工程,首个c文件,并对工程属性进行配置,例如:cpu mode-source/4bit勾选/memory model/code rom size/HEX80及勾选创建hex文件。
  2、添加头文件:使用ISP 头文件选项卡及手册的6.4保存AI8051U头文件,并在main文件中导入头文件  #include。这里对于头文件已经全部都编写好了,比较方便的保存到固定文件中。头文件中大量使用sbit、sfr、define对单片机的寄存器进行定义,以方便使用。
  3、编写一个main函数,并在函数中有while函数,同时解释main与while函数的作用。
  4、编写第一个led亮的代码:P0M0、P0M1、P00、P40,并在后面结合实际物理电路工具、8灯电路图对程序代码进行分析。
      此处P40是一个三极管开关控制,只有P40与上面的SYS-VCC形成电压高低差,三极管才能打开下面的开关,因此P40应是低电压。
  5、配置ISP及烧录程序,在OBJECT文件夹下。
  6、实验箱连接后不亮,进行必要的调试与修改。
  7、程序编写的基本流程:IO口的配置、P0M0/P0M1对应IO工作模式、

  本次课程学习心得体会:
  1、在项目中我习惯把h文件和c文件分开放在不同文件夹中,main放在外面,以便统一管理,当然头文件的目录也需要根据实际情况进行修订。
  2、ISP新版本对于头文件的保存使用非常方便,在原来的8051编制时,配置头文件比较复杂,在stm32使用时,配置头文件也是比较麻烦。所以这里省心了很多。
  3、P0M0/P0M1此类配置及准双向口,有简单方法,就是用ISP中的IO配置工具选项来进行选择配置,全部设置为准双向口相对简单。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-6 22:42:52 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第4集:USB不停电下载

本节课程的内容如下:
1、对比演示手动按钮与非手动按钮下载程序。
2、下载所需文件:USB库文件,通过库来激活usb接口进行下载。库文件中有CDC和HID库文件,两者的区别是: CDC(Communication Device Class),用于模拟串口通信(如 USB 转串口,类似 CH340、CP2102 的功能); HID(Human Interface Device),用于人机交互设备(如键盘、鼠标、游戏手柄),也可用于自定义数据传输。也分为查询与中断模式。
下表是两者之间的对比,视频博主建议使用cdc查询模式。分为8位与32位。
    特性               CDC                                                   HID
    用途               串口通信(USB 转 UART)                 键盘/鼠标/自定义低速率设备
    通信方式        批量传输(Bulk)或中断传输              中断传输(固定轮询)
    驱动需求        可能需要额外驱动(如 CDC 驱动)      免驱(操作系统自带)
    速度               较高(适合大数据量)                        较低(适合小数据包)
    开发复杂度     较简单(类似串口)                            需定义 HID 报告描述符
    典型应用         调试、固件升级、串口通信                  键盘、鼠标、传感器数据上报

3、添加头文件: 将cd查询模式文件夹中stc_usb_cdc_32g.LIB、stc32_stc8_usb.h文件拷贝到项目文件夹中去。
     在项目管理文件夹中把相关文件添加进来。

4、在main函数中引入usb库头文件,并打开库文件,查到usb_init()函数,并把该函数在main中实例化一次。
     设置user_devicedesc/productdesc/stcispcmd;
      P_SW2的第8位(最高位)eaxfar设置为高位1,在设置该位为1时,需要使用|以保证其他位的高低不变;
         或中断使能寄存器IE第8位EA设置为高电1;
         或中断使能寄存器2IE2第8位eusb设置为高1。
       设置DeviceState状态
4、报错的优化。
5、ISP设置及程序烧录。

本节课程的心得: 本节课讲了比较多的寄存器的设置方式,对于初学者比较不友好,但是如果想深入学习寄存器还是有比较有用。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-7 20:42:35 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第5集:C语言
本节课程的内容如下:
1、C语言 USB-CD串口之printf函数的实现:
        usb库中的print_HId宏定义,使用#define来进行宏定义:#define printf printf_hid, printf_hid是一个返回int数值的自定义函数,fmt了形式可以实现%s位置可以被后面的参数进行替换;usb-cdc串口可以实现任意波特率的工作;。
      
2、数的进制:2进制、10进制、16进制
     ASCII码(符号与各个进制数字转变)、1-16对应的十六进制数值、

3、数据的基本类型
      想要使用64位变量,需要添加#pragma float64;
      不同进制数据的范围:signed char →  8位 → -128~127; unsigned char →  8位 → 0~255;……超出范围会报错。
      对C中已定义数据进行再次宏定义: #define u8 unsigned char

4、数据的运算符
      算术:+、-、*、 /、%、++、--,()强制转换数据类型,
      关系: ==、!=、>、 <、>=、<=、
      逻辑: &&、||、!
      赋值:+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=
      位运算: &、|、^、~、<<、>>
      条件: ?:、。、->、,

    后续位移运算会比较多,也是会有一定的难度和容易出错。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-31 20:16:24
已绑定手机

1

主题

9

回帖

69

积分

注册会员

积分
69
发表于 2025-7-7 22:24:55 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第6集:GPIO

本节课程的内容如下:

1、什么是GPIO
     GPIO—输入输出端口,就是引脚,让引脚高低电平。
     VCC输出高电平,一般不超过3。3V或5V,GND输出低电平;
     PnM0与PnM1的组合方式(n=0,1,2,3,4,5,6,7):
           PnM1      PnM0            I/O工作模式
              0            0               准双向口,弱上拉
              0            1               推挽输出,强上拉
              1            0               高阻输入,电流既不能输入,也不能输出
              1            1               开漏模式,对外设置输出为1,等同于高阻输入;
                                             开漏模式,打开内部上拉电阻 | 外部加上拉电阻,简单等同于 准双向口
等同于高阻输入;
      
     


2、按键输入检测

   原理图中的SW2和SW3,与R40/41,接到电源正极,P3.2/3.3设置为0,按下才能形成高低电平差,
   任务1:按下P32灯亮,松开灯灭:判断P32设置0,按下就亮;否则P32为1;演示代码不亮,原因未设置P40。
   任务2:按下P32灯灭,松开P32灯亮:判断P32设置1,按下就灭;否则P32为1;
   任务3:按下灯亮,按一下灯灭:设置一个初始状态变量为0,判断P32为0时状态取反,P00设置为状态;此处出现Bug,原因是因为要有物理消抖while(p32==0){};,while循环体内应该有延迟20ms的动作,可以使用ISP的延时计算器,这里设置WTST=0/EAXFR=1/CKCON=0。
    可单独设置一个延时函数,实际上一些常用的函数可以放在一个单独通用函数中。
    示例代码包里也有跑马灯代码,演示及解释代码含义。

3、课后练习
    任务1:按下P33按钮灯亮,按下P33按钮灯灭;
    任务2:按一下亮1颗灯,再按一下亮2颗灯,直到全亮。

本节课程需要特别掌握的,我个人认为是消抖的问题,目前比较常用的基本都是软件消抖的方式。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-31 23:04 , Processed in 0.125029 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表