曹会杰 发表于 6 天前

曹会杰 发表于 2025-6-24 19:19
818818

为什么中间灯会全亮一下

曹会杰 发表于 6 天前

曹会杰 发表于 2025-6-24 19:19
818818

又点错了,上传了三个视频文件

曹会杰 发表于 6 天前

USB不停电下载成功完成!{:hecai:}

曹会杰 发表于 6 天前

曹会杰 发表于 2025-6-24 21:47
USB不停电下载成功完成!

/*
        MAIN_Fosc24000000Hz
*/
#include <AI8051U.H>
#include "stc32_stc8_usb.h"
#include <intrins.H>

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

unsigned char ucLed=0xFE;
unsigned char ucLed_Mode;//流水灯模式
unsigned char ucLed_Buff[]={0x7E,0xBD,0xDB,0xE7};

/*---Xms延时函数 ---*/
void DelayXms(unsigned int Xms)        //@24.000MHz
{
        unsigned long edata i;
        while(Xms--)
        {
                _nop_();
                _nop_();
                _nop_();
                i = 5998UL;
                while (i) i--;
        }
}
/*---LED流水灯处理函数 ---*/
void ucLed_Proc()
{
        static unsigned char i=0;
        P2 = ucLed;
        switch(ucLed_Mode)
        {
                case 0:
                        if(ucLed==0x7E)
                        {
                                ucLed = 0xFE;
                        }
                        else
                        ucLed = _crol_(ucLed,1);
                        DelayXms(500);
                        if(ucLed==0x7F)ucLed_Mode=1;
                break;
                case 1:
                        ucLed = _cror_(ucLed,1);
                        DelayXms(500);
                        if(ucLed==0xFE)ucLed_Mode=2;
                break;
                case 2:                                       
                                ucLed=ucLed_Buff;
                                i++;
                                if(i==3)ucLed_Mode=3;
                       
                        DelayXms(500);
                break;
                case 3:
                       
                        ucLed=ucLed_Buff;
                        i--;
                        if(i==255)ucLed_Mode=0;
                        DelayXms(500);
                break;
        }
        P2=0xFF;
}
/*---MAIN 主函数 ---*/
void main()
{
        P_SW2 |= 0x80;                //B7位写1,使能访问XFR       
                                                                       
        P0M1 = 0x00;   P0M0 = 0x00;        //初始化IO口为准双向IO口
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
       
        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();
      }
                ucLed_Proc();
        }
}

曹会杰 发表于 5 天前

感谢官方 免费+包邮 的 擎天柱 核心板学习记录
printf_usb函数的应用






曹会杰 发表于 5 天前

曹会杰 发表于 2025-6-25 09:17
感谢官方 免费+包邮 的 擎天柱 核心板学习记录
printf_usb函数的应用



输出成功!

页: 1 [2]
查看完整版本: 点亮第一个LED灯