找回密码
 立即注册
查看: 310|回复: 17

【STC单片机学习全记录】从点亮LED到玩转ADC,我的嵌入式进阶之路

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-5 01:52:25 | 显示全部楼层 |阅读模式
【STC单片机入门实战】从STM32转战Ai8051U,我的学习全记录(持续更新)
记录从零开始系统学习STC单片机全过程,对比STM32经验,分享踩坑心得
📅 Day 1:从库函数到寄存器,思维转换的开始
一、环境搭建:比想象中顺利
                                                               
今天正式开始了STC单片机的学习。我之前有STM32的基础,所以对嵌入式开发的基本概念还算熟悉,但STC的“简化式开发”还是让我有点不适应。
开发环境对比
  • STM32:需要安装Keil MDK、STM32CubeMX、STM32CubeProgrammer,还有各种Pack支持包
  • STC:一个Keil C51 + STC-ISP编程软件就搞定了,轻量得让我惊讶
二、第一个工程:手把手配置,没有CubeMX的自动化
创建工程的过程完全手动,这让我想起了最开始学STM32时,看正点原子教程一步步配置GPIO的情景。
核心步骤记录
  1. // STC工程的基本骨架
  2. #include "ai8051u.h"
  3. void main() {
  4.    // 初始化部分
  5.    
  6.     while(1) {
  7.         // 主循环
  8.     };
  9. }
复制代码

配置差异思考
STM32的CubeMX能图形化配置时钟树、GPIO模式、中断优先级,自动生成代码。而STC需要:
  • 手动添加头文件
  • 手动设置工程选项(尤其要注意生成HEX文件)
  • 手动编写所有初始化代码
好处是:对底层理解更深刻了。我知道P5M0和P5M1寄存器每一位控制什么,而不只是调用HAL_GPIO_Init()。
三、点亮LED:简单的操作,不简单的思考
我的开发板上,LED电路设计有点特别:
  1. // 点亮LED的完整代码
  2. #include "ai8051u.h"
  3. void main() {
  4.     // 1. 配置GPIO模式
  5.     P0M0 = 0x00;
  6.     P0M1 = 0x00;  // P0口:准双向
  7.     P4M0 = 0x00;
  8.     P4M1 = 0x00;  // P4口:准双向
  9.    
  10.     // 2. 控制逻辑
  11.     P4_0 = 0;  // 打开三极管开关(低电平有效)
  12.     P0_0 = 0;  // LED低电平点亮
  13.    
  14.     while(1);  // 保持状态
  15. }
复制代码

为什么这么复杂?
STM32点亮LED通常就是HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET),而STC这里需要控制两个IO:
  • P4_0控制三极管开关
  • P0_0控制LED本身
这让我理解了实际产品的电路设计考量——可能是为了省电,或者是多路复用设计。
四、STM32 vs STC:我的直观感受
对比项
STM32
STC
学习感悟
开发环境
复杂但强大
简单直接
STC入门门槛低,适合快速验证想法
GPIO控制
HAL库函数抽象
直接操作寄存器
STC让我真正理解每个bit的作用
时钟系统
复杂的时钟树
相对简单
不用纠结PLL配置,专注功能实现
调试手段
SWD/JTAG
USB-Link1D下载器
学会用LED、串口等辅助调试
资源
丰富(RAM大、外设多)
有限但够用
学会资源优化,代码更精简

五、计划与学习路线
根据教程目录,我制定了这样的学习路线:
第一阶段:基础篇(第2-5集)
  • ✓ Day1:环境搭建+点亮LED(第2-3集)
  • Day2:USB不停电下载(第4集)
  • Day3:C语言基础回顾(第5集)
第二阶段:外设入门(第6-9集)
  • Day4:IO输入输出(按键检测)
  • Day5:定时器中断
  • Day6:定时器调度任务
  • Day7:数码管显示
第三阶段:进阶应用(第10-15集
  • 虚拟键盘、矩阵按键、ADC、Flash等
第四阶段:通信与高级功能(第16-23集)
  • DS18B20、串口、PCA、比较器等
六、给同样从STM32转来的同学的建议
  • 心态调整:不要嫌弃STC”简陋“,它的简单正是学习的好机会
  • 思维转换:从“库函数怎么用”变成“寄存器怎么配”
  • 重视基础:51架构虽然老,但计算机组成原理没变
  • 动手实践:STC开发板便宜,大胆试错
  • 善用工具:STC-ISP里的延时计算器、头文件生成器很实用










回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-6 01:07:01 | 显示全部楼层
【STC单片机入门实战】Day 2:解放双手!实现USB不停电下载(第4集学习笔记)
记录从STM32转战STC单片机第2天,解决最烦人的手动下载问题
📅 整体学习路线回顾根据课程目录,我的完整学习路径如下:
第一阶段:基础入门(第2-5集)
  • ✅ Day 1:硬件介绍 + 点亮LED(第2-3集)
  • 🔄 Day 2:USB不停电下载(第4集)​ ← 今天学习
  • Day 3:C语言基础(第5集)

第二阶段:外设入门(第6-9集)
  • Day 4:I/O输入输出(第6集)
  • Day 5:定时器中断(第7集)
  • Day 6:定时器调度任务(第8集)
  • Day 7:数码管显示(第9集)

第三阶段:进阶应用(第10-15集)
  • 虚拟键盘、矩阵按键、复位系统、外部中断、IO中断、定时器计数器等

第四阶段:高级功能(第16-23集)
  • DS18B20、串口通信、ADC、Flash、比较器、PCA等

今日学习重点:USB不停电下载昨天点亮LED虽然成功了,但每次下载程序都要手动按P3.2按钮的操作,引起了我的注意。这确实是个效率瓶颈!今天学习的第4集内容就是解决这个问题——实现USB不停电下载,彻底解放双手。
STM32STC的下载体验对比思考:在STM32开发中,我习惯了ST-Link的一键下载调试。STC这种需要手动断电的下载方式,在初期调试频繁时会严重影响效率。这也是我从STM32转来时最需要适应的点之一。
对比维度
STM32
STC (传统方式)
STC (USB不停电)

下载方式
SWD/JTAG调试器
串口+手动断电按钮
直接USB连接

硬件需求
ST-Link/V2等调试器
USB转串口工具
仅USB线

操作步骤
编译→一键下载
编译→手动断电→按按钮→下载
编译→自动下载

开发效率
⭐⭐⭐⭐⭐
⭐⭐
⭐⭐⭐⭐

学习成本
中等
低,但操作繁琐
中等


核心原理解析传统下载的问题所在STC单片机默认是通过系统ISP监控程序实现下载的,这个监控程序在芯片上电时会先运行,检测是否有下载命令。但用户程序运行后,监控程序就被“覆盖”了,要重新进入下载模式就必须:
  • 断电复位
  • 按住P3.2强制进入ISP模式
  • 重新上电

USB不停电下载的聪明解法STC的方案是在用户程序中嵌入一个“后门”
  • USB虚拟串口(CDC):程序运行后,USB接口模拟成一个串口设备
  • 特殊握手协议:当STC-ISP软件发送特定命令字符串@STCISP#时
  • 软件复位:程序识别到命令后,自动软复位并跳转到ISP监控程序
  • 无缝切换:实现从用户程序到下载模式的平滑过渡


📋 实现步骤详解第一步:获取必要的库文件从STC官网(深圳国芯人工智能有限公司-库函数)下载USB库文件,关键文件包括:
  • stc_usb_cdc_32.LIB→ USB通信库(二进制,保护源码)
  • stc32_stc8_usb.h→ 头文件(接口声明)

注意:STC提供8位和32位两种库,AI8051U是32位内核,要选择对应的32位库文件。
第二步:工程配置与移植1. 库文件添加
  1. // 工程结构变化:
  2. Demo.Uvproj
  3. ├── main.c          // 用户主程序
  4. ├── AI8051U.H       // 芯片头文件
  5. └── stc_usb_cdc_32.LIB  // ← 新增的USB库
复制代码

2. 关键代码分析
  1. /*------------------------------------------------------------------
  2. * 文件名称:STC32G_USB_CDC_Demo.c
  3. * 功能描述:STC32G系列单片机USB CDC虚拟串口通信示例程序
  4. *           演示如何通过USB接口实现单片机与电脑间的数据通信
  5. * 硬件平台:STC系列开发板(屠龙刀、擎天柱等)
  6. * 开发环境:Keil C51
  7. * 作者:根据STC32G视频教程整理
  8. * 日期:2026年1月6日
  9. *------------------------------------------------------------------*/
  10. /*--- 头文件包含区域 ---*/
  11. #include "stc32g.h"           // STC32G系列单片机专用头文件,包含所有寄存器定义
  12. #include "stc32_stc8_usb.h"   // STC官方USB库头文件,提供CDC/HID功能支持
  13. #include "math.h"             // 数学函数库,本例中虽未直接使用,但为后续功能扩展预留
  14. #include "stdio.h"            // 标准输入输出库,支持printf_usb格式化输出功能
  15. /*--- 主函数:程序入口点 ---*/
  16. void main()
  17. {
  18.     /*--- 系统初始化部分 ---*/
  19.    
  20.     /* 关键步骤1:使能扩展寄存器访问权限
  21.      * P_SW2是特殊功能寄存器,其最高位(bit7)控制XFR扩展寄存器的访问
  22.      * 0x80 = 1000 0000二进制,通过"或等于"操作只设置bit7,不影响其他位
  23.      * 这是访问USB相关特殊寄存器的必要步骤[3](@ref)
  24.      */
  25.     P_SW2 |= 0x80;
  26.    
  27.     /*--- GPIO端口模式配置 ---*/
  28.     /* 将所有IO口(P0-P7)设置为准双向口模式
  29.      * 准双向口是传统51单片机标准模式,兼具输入输出能力
  30.      * 每个端口由两个寄存器控制:PxM1和PxM0
  31.      * 配置为00:准双向口;01:推挽输出;10:高阻输入;11:开漏输出
  32.      * 这里统一配置为准双向口,确保USB通信时端口状态稳定[3,6](@ref)
  33.      */
  34.     P0M1 = 0x00;   P0M0 = 0x00;  // 配置P0口
  35.     P1M1 = 0x00;   P1M0 = 0x00;  // 配置P1口  
  36.     P2M1 = 0x00;   P2M0 = 0x00;  // 配置P2口
  37.     P3M1 = 0x00;   P3M0 = 0x00;  // 配置P3口(特别注意:P3.0/P3.1与USB D-/D+共用)
  38.     P4M1 = 0x00;   P4M0 = 0x00;  // 配置P4口
  39.     P5M1 = 0x00;   P5M0 = 0x00;  // 配置P5口
  40.     P6M1 = 0x00;   P6M0 = 0x00;  // 配置P6口
  41.     P7M1 = 0x00;   P7M0 = 0x00;  // 配置P7口
  42.    
  43.     /*--- USB模块初始化 ---*/
  44.     /* usb_init()函数是STC官方USB库的核心初始化函数
  45.      * 该函数会自动配置以下内容:
  46.      * 1. 初始化USB时钟源(内部48MHz IRC)
  47.      * 2. 配置USB控制寄存器(USBCON, USBCLK等)
  48.      * 3. 设置USB端点缓冲区和描述符表
  49.      * 4. 将P3.0/P3.1设置为高阻输入模式,避免影响USB D-/D+信号质量
  50.      * 此函数调用后,USB硬件模块开始工作,等待电脑枚举识别[6](@ref)
  51.      */
  52.     usb_init();
  53.    
  54.     /*--- 中断系统使能 ---*/
  55.     /* EA = 1:开启51单片机全局中断开关
  56.      * 类似于STM32中的__enable_irq()功能
  57.      * 这是USB中断正常工作的重要前提条件
  58.      * 注意:USB中断在stc32_stc8_usb.h中已有默认的中断服务函数
  59.      */
  60.     EA = 1;
  61.     /*--- 主循环:程序核心逻辑 ---*/
  62.     while (1)
  63.     {
  64.         /* bUsbOutReady是USB库定义的标志变量
  65.          * 当电脑通过USB虚拟串口发送数据到单片机时,该标志会自动置1
  66.          * 这种查询方式比中断方式更简单可靠,适合初学者使用
  67.          */
  68.         if (bUsbOutReady)
  69.         {
  70.             /* 示例代码:通过printf_usb向电脑发送调试信息
  71.              * printf_usb是USB库提供的格式化输出函数,用法与标准printf相同
  72.              * OutNumber变量包含本次接收到的数据字节数
  73.              * 实际应用中,可以根据接收到的数据内容进行相应处理
  74.              */
  75.             
  76.             // 发送接收到的数据字节数(演示用,实际应用可修改)
  77. //            USB_SendData(UsbOutBuffer, OutNumber);   // 发送接收数据原样返回(测试用)
  78.             
  79.             /* 使用printf_usb输出格式化调试信息
  80.              * 注意:每个printf_usb调用都会作为一个完整的USB数据包发送
  81.              * "\n"是换行符,使输出在串口助手中显示更整齐
  82.              */
  83.             printf_usb("1. Read Num:%d\n", OutNumber);  // 第一次输出
  84.             printf_usb("2. Read Num:%d\n", OutNumber);  // 第二次输出  
  85.             printf_usb("3. Read Num:%d\n", OutNumber);  // 第三次输出
  86.             printf_usb("4. Read Num:%d\n", OutNumber);  // 第四次输出
  87.             
  88.             /* 重要:标记当前USB数据包处理完成
  89.              * 该函数会清除bUsbOutReady标志,使能接收下一个数据包
  90.              * 如果没有调用此函数,USB将无法继续接收新数据
  91.              * 这是STC USB库的重要工作机制[6](@ref)
  92.              */
  93.             usb_OUT_done();
  94.         }
  95.         
  96.         /* 此处可以添加其他应用代码
  97.          * 由于USB通信采用查询方式,需要确保主循环执行时间不会太长
  98.          * 如果处理任务较重,建议使用定时器中断或状态机架构
  99.          */
  100.     }
  101. }
  102. /*=== 程序使用说明和开发建议 ===*/
  103. /*
  104. * 1. 硬件连接注意事项:
  105. *    - 确保USB数据线质量良好,MicroUSB接口连接可靠
  106. *    - P3.0/P3.1专用于USB通信,不要作为普通IO使用
  107. *    - 电脑端需要安装STC USB驱动(STC-ISP软件自带)
  108. *
  109. * 2. 编译环境配置:
  110. *    - 在Keil项目中需要添加STC官方提供的USB库文件(.LIB)
  111. *    - 设置正确的头文件包含路径
  112. *    - 根据具体芯片型号选择正确的内存模式
复制代码

第三步:STC-ISP软件配置

STC-ISP软件配置

STC-ISP软件配置
必须勾选的三个选项:
  • 使用默认内部自定义命令​ → 对应@STCISP#
  • 下次使用ID接口进行ISP下载​ → 实现后续下载
  • 每次下载前都先发送自定义命令​ → 自动化发送密钥

工作流程:Keil编译生成HEX → STC-ISP检测到文件变化 → 自动发送@STCISP#命令 → 单片机收到后软复位进入下载模式 → 自动开始编程

有趣的知识点笔记1. 查询模式 vs 中断模式教程推荐使用查询模式,原因很实际:
  • 查询模式:在主循环中定期检查USB状态
  • 中断模式:USB事件触发中断立即响应
  • 选择原因:查询模式代码更简单,不易因中断嵌套产生问题,适合初学者

2. 或等于(|=)操作的重要性
  1. P_SW2 |= 0x80;  // 正确:只改第7位,不影响其他位
  2. P_SW2 = 0x80;   // 危险:清零了所有其他位!
复制代码
重要:寄存器操作中,|=是“置位”操作,=是“赋值”操作。STC很多寄存器有保留位或默认配置,错误使用=可能导致系统异常。

总结与期待今天虽然只是理论学习,但USB不停电下载这个功能让我对STC单片机的设计理念有了新认识:
  • 用户思维:从实际开发痛点出发设计功能
  • 渐进式:先解决“有没有”,再考虑“好不好”
  • 生态思维:软硬件工具链的协同设计

最期待的时刻:收到“擎天柱最小系统板”后,我要验证的第一件事就是这个USB不停电下载。从手动到自动的体验提升,是开发效率的关键一步!
作为有STM32背景的学习者,我越来越理解:不同的芯片有不同的哲学。STM32追求强大和通用,STC追求实用和经济。在资源受限的环境中寻找优雅的解决方案,这是一种不同的技术乐趣。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-8 00:55:55 | 显示全部楼层
开箱点亮Ai8051U擎天柱核心板USB下载程序全记录大家好!最近我收到了期待已久的Ai8051U擎天柱核心板,心情超级激动!这款板子基于STC的32位8051单片机,功能强大,特别适合学习和项目开发。开箱后,我迫不及待地插上USB线,想试试板子自带的流水灯程序。但没想到,第一步就遇到了小挫折:插上USB后,STC-ISP软件居然没有检测到串口!板子上的LED灯倒是亮着,说明程序在跑,但怎么才能下载自己的程序呢?于是,我静下心来,翻看了随板附带的《Ai8051U系列技术手册》,重点学习了第2.2章节“安装AiCube-ISP下载/编程/烧录工具,含强大的辅助开发工具”。今天,我就把这次学习经历整理成博客,分享给大家,希望能帮到同样刚入手的朋友们
一、开箱初体验:默认流水灯程序与问题发现收到Ai8051U擎天柱核心板时,包装简洁,板子设计精致,正面印有“擎天柱”标识。我按照说明,直接用USB-TypeC线连接电脑和板子。
截图202601080022527037.jpg

板子通电后,一组LED闪烁,这就是默认的流水灯程序,效果很酷!但当我打开STC-ISP软件(版本v6.96N),准备下载自己的程序时,问题来了:软件界面上的“扫描串口”列表空空如也,没有显示任何COM口或USB设备。板子明明通电了,为什么软件检测不到呢?



我一开始以为是驱动问题,但手册提醒我:Ai8051U支持硬件USB下载,不需要安装额外驱动,只要USB连接的鼠标能工作,USB-HID驱动就是好的。那问题出在哪儿?继续读手册,我发现了关键点:USB下载需要正确的上电顺序硬件操作,不能简单插拔USB代替电源开关。
二、手册解读:学习USB下载的正确姿势手册第2.2章节详细介绍了AiCube-ISP软件的安装和USB下载流程。我总结了几点核心内容:
  • AiCube-ISP软件:这是STC官方提供的下载/编程工具,集成了各种辅助开发功能,如串口助手、延时计算器等。软件是绿色版,解压就能用,超级方便。
  • 上电工作过程:单片机复位时,默认从系统程序区启动,判断是否要下载用户程序。如果USB的D+和D-信号接触不良,单片机可能直接跳转到用户程序区运行流水灯,导致软件无法检测到下载模式。
  • USB下载流程图:手册强调,下载时必须用电源开关控制上电,而不是依赖USB插拔,以确保GND、D+、D-、VCC的接触顺序正确。


截图202601080049449506.jpg
截图202601080051153430.jpg

三、实战操作:一步步解决无串口检测问题按照手册,我重新操作了一遍,终于成功!下面是详细步骤,我在关键环节留了图片位置,方便大家对照。
步骤1:安装AiCube-ISP软件
我先从STC官网(https://www.stcai.com/gjrj)下载了最新版AiCube-ISP压缩包,解压到D盘,创建了桌面快捷方式。软件界面简洁,功能一目了然。



步骤2:硬件连接与上电顺序
手册指出,USB下载有三种方法,我用了最可靠的方法一:P3.2按键结合停电上电
  • 用USB-TypeA线连接电脑和板子(板子是TypeC口,我用转接头连接)。
  • 按住板子上的P3.2按键(即P3.2接地)。
  • 按下电源按钮(Power_SW)停电,再松开按钮上电——这就是“冷启动”。
  • 这时,电脑端的AiCube-ISP软件自动识别出了“(HID1) USB-Writer”,表示可以下载了!


截图202601080041208977.jpg

这次正确操作后,软件立马检测到了设备。
步骤3:下载默认流水灯程序验证
为了测试,我打开了03.点亮第一个LED程序的HEX文件,点击“下载/编程”,几秒后提示成功。板子上的P20和P21引脚的LED重新点亮,证明下载功能正常!



四、总结与心得这次经历让我深刻体会到:硬件操作的小细节决定成败。Ai8051U的USB下载功能很强大,但必须严格按手册步骤来。总结几个要点:
  • 软件安装简单,AiCube-ISP工具包很实用。
  • 下载时一定要用电源开关控制上电,避免USB插拔顺序问题。
  • 如果软件不识别,先检查P3.2按键是否按下,再按下松开POWER按键冷启动。

现在,我可以愉快地折腾我的Ai8051U了!下一步我准备尝试用USB-CDC虚拟串口通信,相信有手册指导,会顺利很多。如果你也遇到了类似问题,希望这篇博客能帮到你。欢迎在评论区交流心得!

好了,这就是我的学习笔记。如果你有Ai8051U板子,不妨跟着试试,祝你玩得开心!

AI8051U.pdf

66.66 MB, 下载次数: 1

芯片手册

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-5 01:59:27 | 显示全部楼层
等擎天柱核心板到后会更新上手操作图片
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:324
  • 最近打卡:2026-02-12 09:05:32

836

主题

1万

回帖

2万

积分

管理员

积分
22182
发表于 2026-1-5 08:25:46 | 显示全部楼层
要 做到 USB不停电下载
要 尝试 AiCube 图形化自动配置生成程序工具
推荐优先看的:  
printf_usb("Hello World !\r\n")
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96N 或以上版本软件 !

深圳国芯人工智能有限公司-工具软件

下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 Ai8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 Ai8051U 实验指导书,
AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf


上面是 小李 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:324
  • 最近打卡:2026-02-12 09:05:32

836

主题

1万

回帖

2万

积分

管理员

积分
22182
发表于 2026-1-5 08:30:14 | 显示全部楼层
截图202601050827005548.jpg


截图202601050827297178.jpg

截图202601050828204888.jpg

截图202601050828492941.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:324
  • 最近打卡:2026-02-12 09:05:32

836

主题

1万

回帖

2万

积分

管理员

积分
22182
发表于 2026-1-5 08:30:46 | 显示全部楼层
截图202601050830356773.jpg


#include  "ai8051u.h"        //头文件不分大小写,但关键字分大小写
#include  "ai_usb.h"        //USB库和USB虚拟设备的头文件

void  main(void)
{
        EAXFR = 1;        //允许访问扩展的特殊寄存器,XFR
        WTST = 0;        //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
        CKCON = 0;        //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间

        P0M0 = 0x00; P0M1 = 0x00;        //初始化P0口为准双向口模式
        P1M0 = 0x00; P1M1 = 0x00;         //初始化P1口为准双向口模式
        P2M0 = 0x00; P2M1 = 0x00;         //初始化P2口为准双向口模式
        P3M0 = 0x00; P3M1 = 0x00;         //初始化P3口为准双向口模式
        P4M0 = 0x00; P4M1 = 0x00;         //初始化P4口为准双向口模式
        P5M0 = 0x00; P5M1 = 0x00;         //初始化P5口为准双向口模式

        usb_init();
        //初始化USB模块,并且会将【P3.0,P3.1】初始化为高阻输入,不影响USB【D-,D+】通讯
        EA = 1;                //使能总中断

        while (1)
        {
                printf_usb("Hello World !\r\n");
                //  \r是回车,并跳到行首,\n是换行,就是换到下一行;\r\n不要交换次序
        }
}


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:324
  • 最近打卡:2026-02-12 09:05:32

836

主题

1万

回帖

2万

积分

管理员

积分
22182
发表于 2026-1-5 08:35:49 | 显示全部楼层
由于 USB库的持续进步,
USB程序已成为 51入门的第一个程序 !



printf_usb("Hello World !\r\n");


1,第一节课 打通 USB;
2,AiCube 图形化配置的参与,顺带将 KEIL 设置也默认设置好了
     下面这些设置,AiCube 创建 KEIL 工程时已设置好了

截图202601050834588727.jpg


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-5 08:42:30 | 显示全部楼层
神*** 发表于 2026-1-5 08:25
要 做到 USB不停电下载;
要 尝试 AiCube 图形化自动配置生成程序工具;
推荐优先看的:  

好的,谢谢大咖!!!我将持续学习,争取尽快入门,用STC实现自己的创意灵感。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:324
  • 最近打卡:2026-02-12 09:05:32

836

主题

1万

回帖

2万

积分

管理员

积分
22182
发表于 2026-1-5 09:08:08 | 显示全部楼层
现在缺少跟着 AiCube 图形化配置8051U,熟悉51 的芯路历程,
请楼主 开天辟地,穿越着来一回:

跟着 STC AiCube 学习 8051U 的 启蒙大片 !

到时 全部 免费+包邮 送:

实验箱,
核心板,
USB-Link1D, 脱机烧录,仿真,
USB 转双串口,
全家桶



Ai8051U-LQFP48,RMB1.9
USB 32 80511T 8051,支持328051指令集和88051指令集
比普通32位机强太多的地方:
1,  Ai8051U有TFPU@120MHz, 算力强, uS级硬件三角函数/浮点运算器
2,  Ai8051U的抗干扰强;12位ADC全新设计更精准,轨到轨比较器
3,  Ai8051U内置专业级复位电路,彻底省外部复位;
4,  Ai8051U的内部高可靠时钟完全满足串口通信要求,4高速串口
5,  Ai8051U有QSPIFlash,直送i8080/M6800-TFT接口,视频级刷彩屏,C8T6没有;
6,  Ai8051U的PWM支持硬件移相@120MHz,DMA可以外设直接到外设P2P
7,  Ai8051U是 34K SRAM,64K Flash
8,  Ai8051U是自带硬件USB1个芯片就能直接USB连接电脑仿真/下载,全球唯一
9  PDIP40LQFP44LQFP48封装,管脚兼容经典的89C52RC,12C5A60S2
10,当328051使用,可以用 Keil C251 编译器,双核兼容设计
11,当88051使用,可以用 Keil C51/IAR/SDCC 编译器
Ai8051U-LQFP48,USB 32 8051RMB1.9含税

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:623
  • 最近打卡:2026-02-12 10:50:13

33

主题

2870

回帖

6425

积分

论坛元老

积分
6425
发表于 2026-1-5 09:10:26 | 显示全部楼层
LilMons*** 发表于 2026-1-5 08:42
好的,谢谢大咖!!!我将持续学习,争取尽快入门,用STC实现自己的创意灵感。
...

挺仔细的,STC的8051U和最新的STC32G144K246已经有了比肩cotex m3 m4 单片机的能力了。如果你有时间的话可以拿来做做对比。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2026-01-15 23:35:10
已绑定手机

0

主题

18

回帖

80

积分

注册会员

积分
80
发表于 2026-1-5 16:13:03 | 显示全部楼层
_奶*** 发表于 2026-1-5 09:10
挺仔细的,STC的8051U和最新的STC32G144K246已经有了比肩cotex m3 m4 单片机的能力了。如果你有时间的话 ...

我就是为了用最新的STC32G144K246,先用A8051U来熟悉一下STC的开发流程
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-2-13 03:35 , Processed in 0.518473 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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