找回密码
 立即注册
查看: 444|回复: 6

一起学AiCube之STC8H8K64U自动开发, printf_usb("Hello World !\r\n");及不停电下载

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:184
  • 最近打卡:2025-06-12 11:46:50
已绑定手机

93

主题

974

回帖

2453

积分

超级版主

积分
2453
QQ
发表于 3 天前 | 显示全部楼层 |阅读模式
一起学AiCube之STC8H8K64U自动辅助开发,程序自动生成
STC8H8K64U 三个超简单的USB通信实验, 及USB不停电下载
实验一:直接输出,printf_usb("Hello World !\r\n")
实验二:  查询方式,查询到电脑命令后,

              printf_usb("Hello World !\r\n")或其他
实验三:  中断方式,单片机USB中断接收服务函数收到命令后,

              printf_usb("Hello World !\r\n")或其他


最新 ISP软件下载:
截图202506091506353128.jpg
深圳国芯人工智能有限公司-工具软件

最新数据手册下载:
截图202506091508364376.jpg
深圳国芯人工智能有限公司-产品_STC8H系列
热线19952583534
www.STCAI.com
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-12 08:58:25

733

主题

1万

回帖

1万

积分

管理员

积分
16461
发表于 3 天前 | 显示全部楼层
截图202506091434249478.jpg
可以拷贝过来,简单修改就能使用的参考程序
截图202506091441009914.jpg
#include  "ai8051u.h"        //头文件不分大小写,但关键字分大小写
#include  "ai_usb.h"        //USB库和USB虚拟设备的头文件
void  main(void)
{
/*
        EAXFR = 1;        //允许访问扩展的特殊寄存器,XFR, 用于STC32G/AI8051U-32Bit等32位8051单片机
        WTST = 0;        //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
        CKCON = 0;      //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
*/
        P_SW2 |= 0x80;         //扩展寄存器(XFR)访问使能, 用于STC8H/AI8H系列8位 1T 8051单片机

        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不要交换次序
        }
}

截图202506091435315399.jpg

截图202506091436474574.jpg

截图202506091437175121.jpg





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-12 08:58:25

733

主题

1万

回帖

1万

积分

管理员

积分
16461
发表于 3 天前 | 显示全部楼层
截图202506091438339947.jpg

可以拷贝过来,简单修改就能使用的参考程序
截图202506091443091526.jpg
#include "ai8051u.h"
#include "ai_usb.h"
void main(void)
{
/*
    EAXFR = 1;        //允许访问扩展的特殊寄存器,XFR, 用于STC32G/AI8051U-32Bit等32位8051单片机
    WTST = 0;        //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
    CKCON = 0;      //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
*/
    P_SW2 |= 0x80;         //扩展寄存器(XFR)访问使能, 用于STC8H/AI8H系列8位 1T 8051单片机

    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口为准双向口模式
    P6M0 = 0x00; P6M1 = 0x00;           //初始化P6口为准双向口模式
    P7M0 = 0x00; P7M1 = 0x00;           //初始化P7口为准双向口模式
   
    usb_init();                         //初始化USB模块
    EA = 1;                             //使能全局中断

    while (1)
    {
        if (bUsbOutReady)               //查询是否有接收到数据
        {
                if (UsbOutBuffer[0] == 6)
                          printf_usb("Hello World !\r\n");
                else if (UsbOutBuffer[0] == 7)
                          printf_usb("China !\r\n");
   
                usb_OUT_done();             //当前包的数据处理完成
        }
    }
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-12 08:58:25

733

主题

1万

回帖

1万

积分

管理员

积分
16461
发表于 3 天前 | 显示全部楼层
截图202506091439219776.jpg

可以拷贝过来,简单修改就能使用的参考程序
截图202506091447394410.jpg

#include "ai8051u.h"
#include "ai_usb.h"

////////////////////////////////////////
// USB设备接收数据中断回调程序
////////////////////////////////////////
void USBLIB_OUT_Callback(void)
{
    if (UsbOutBuffer[0] == 6)
        printf_usb("Hello World !\r\n");        //接收到数据6后打印“Hello World !”
    else if (UsbOutBuffer[0] == 7)
        printf_usb("China !\r\n");                //接收到数据7后打印“China !”
}

void main(void)
{
/*
    EAXFR = 1;        //允许访问扩展的特殊寄存器,XFR, 用于STC32G/AI8051U-32Bit等32位8051单片机
    WTST = 0;        //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
    CKCON = 0;      //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
*/
    P_SW2 |= 0x80;         //扩展寄存器(XFR)访问使能, 用于STC8H/AI8H系列8位 1T 8051单片机

    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口为准双向口模式
    P6M0 = 0x00; P6M1 = 0x00;           //初始化P6口为准双向口模式
    P7M0 = 0x00; P7M1 = 0x00;           //初始化P7口为准双向口模式
   
    usb_init();                         //初始化USB模块
    set_usb_OUT_callback(USBLIB_OUT_Callback);  //设置USB中断回调函数
    EA = 1;                             //使能全局中断

    while (1);
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-06-12 00:14:08
已绑定手机

141

主题

1678

回帖

2522

积分

金牌会员

积分
2522
发表于 3 天前 | 显示全部楼层
好好学习,天天向上,,声音真好听
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:431
  • 最近打卡:2025-06-12 08:54:04

28

主题

335

回帖

2876

积分

荣誉版主

积分
2876
发表于 3 天前 | 显示全部楼层
学习ing跟着视频一把过~~~~~~

printf_usb学习.jpg

查询中断两个例子一开始发送6、7没有返回,
仔细看视频画面发现我的ISP发送默认没有勾选HEX
勾上之后立马顺利发送接收~
另外AiCube的关联printf选项好方便,printf_usb()和printf都能直接用了。




能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-12 08:58:25

733

主题

1万

回帖

1万

积分

管理员

积分
16461
发表于 3 天前 | 显示全部楼层
截图202506091942582452.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-12 18:38 , Processed in 0.134221 second(s), 91 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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