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

学习打卡《Ai8051U教学视频》第四天,USB不停电下载

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-25 23:48:41 | 显示全部楼层 |阅读模式
学习打卡《Ai8051U教学视频》第四天,USB不停电下载

学习知识点:需要提前学习相关USB串口的函数调用,具体实现不太明白,照做调试成功,先把装备调试好,方便接下来的实验,有空研究一下这个功能。
程序代码:
#include "ai8051u.h"                        
#include "stc32_stc8_usb.h"               

char *USER_DEVICEDESC = NULL;

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

void main(void)
{
    P_SW2 |= 0x80;                //B7位写1,使能访问XFR
        
    P0M1 = 0x00;   P0M0 = 0x00;
    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();                                    

    IE2 |= 0x80;                                   
    EA = 1;                                                                                       
        
        

while (DeviceState != DEVSTATE_CONFIGURED);     
        
        while(1)
        {
               
        if (bUsbOutReady)
        {
            USB_SendData(UsbOutBuffer,OutNumber);   
            
            usb_OUT_done();
        }
               
                P20 = 0;                                       
                P22 = 0;                                       

        }
}


1.png
2.jpg
回复

使用道具 举报 送花

3

主题

704

回帖

119

积分

等待验证会员

积分
119
发表于 2025-5-25 23:58:00 | 显示全部楼层
国芯AI8051U教学视频第四天:从入门到应用

国芯AI8051U是一款集成了AI核心的微控制器,支持语音识别、图像识别、自然语言处理等多种智能功能。在第四天的学习中,我们重点讲解了国芯AI8051U的入门知识、硬件安装和初步应用。

1. 国芯AI8051U的基础知识
国芯AI8051U是国芯的一款核心微控制器,其核心部分由IP-17760和IP-17660组成,具备8位微控制器的性能。在第四天的课程中,我们介绍了国芯AI8051U的核心特性,包括时钟频率、微控制器架构、以及与STM32微控制器的兼容性等。

2. 国芯AI8051U的硬件安装
在第四天的实验中,我们展示了如何将国芯AI8051U与STM32 microcontroller board(STM32 M3)实现无缝连接。首先,我们需要将STM32 M3连接到PCboard,并将IP-17760与IP-17660的地址位对齐。然后,完成硬件初始化后,我们就可以开始运行国芯AI8051U的程序了。

3. 国芯AI8051U的初步应用
在第四天的实践过程中,我们展示了如何使用国芯AI8051U进行简单的语音识别和图像识别任务。例如,我们展示了如何使用国芯AI8051U与STM32 board实现语音识别功能,以及如何通过图像识别功能来完成简单的图像分类任务。

4. 国芯AI8051U的后续学习
在第四天的学习中,我们还讨论了国芯AI8051U的未来发展方向和应用前景。例如,国芯正在研发AI4000系列,旨在实现更高的AI性能。此外,国芯还在不断优化国芯AI8051U的性能,以满足更多实际应用的需求。

总之,国芯AI8051U是一款功能强大且兼容性更强的微控制器,其在第四天的学习中为我们提供了宝贵的学习机会。通过本次实验,我们不仅加深了对国芯AI8051U核心原理的理解,还掌握了如何将国芯AI8051U与STM32 board实现高效连接和应用。

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

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-26 01:18:20 | 显示全部楼层
USB不停电的代码,能不能封装成一个简单调用的函数,只加到头文件中就行,不需要在代码中间多处添加?不知道这样行吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:187
  • 最近打卡:2025-06-17 11:30:23
已绑定手机

95

主题

977

回帖

2479

积分

超级版主

积分
2479
QQ
发表于 2025-5-26 09:15:58 | 显示全部楼层
在同一个帖子中打卡,不要再重新开帖了
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-26 23:46:46 | 显示全部楼层
学习打卡《Ai8051U教学视频》第五天,C语言基础知识

C言语基础:今天掌握部分知识点如下
1、CDC串口和普通串口的区别,是任意波特率都是可以工作的。
2、printf()不要放到循环外面,不然死循环不受控制。
3、printf()里面的参数,用转化说明符%表示后面的参数。普通字符在双引号里,附加参数分别用逗号隔开。如:printf("今天时%d年%d月%d日",25,5,26)
4、常用运算符,注意取整和取余的结果。
5、全局变量可以被调用的范围。
6、注意转义的时候要多一个符号,如%%。

printf参数计算.png
USB发送调试成功.png
变量.png
运算符识记.png
转化说明符.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-27 23:52:33 | 显示全部楼层
学习打卡《Ai8051U教学视频》第六天,IO输入输出,按键检测实现

内容关键知识点:
GPIO(General Purpose I/O Ports)通用输入输出端口,输出输入高低电平的状态,高电平VCC电压,低电平GND,也就是逻辑1和0.
按键检测:
1、IO口的输入电压检测,电压要小于0.99V,


2、检测按键按下后显示的状态很好理解,要每按一次改变状态,要用到C语言的判断语句。


3、使用while语句锁定状态的用法。


4、物理按键接触抖动,消抖的代码实现。


学习视频链接:https://v.stcai.com/sv/4528efe-1 ... efe-19375e5d457.mp4












1IO口的模式.png
2按键控制LED代码.png
3按键消抖实现.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-28 23:47:13 | 显示全部楼层
学习打卡《Ai8051U教学视频》第七天,定时器中断的使用

定时器知识:中断是单线程执行中临时断开,用于计时,每隔一固定时间完成一项操作,替代长时间的Delay,提高程序的运行效率。
测试代码验证:
#include "ai8051u.h"                        //调用头文件
#include "stc32_stc8_usb.h"        //调用头文件
#include "intrins.h"                        //d调用头文件
#define u8  unsigned char               
#define u16 unsigned int                //16位无符号变量(0-65535)        
        
u8 state = 0;                                       
u8 Run_State = 0;                                


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


void Delay20ms(void)        //@24.000MHz  Delay20ms();
{
        unsigned long edata i;


        _nop_();
        _nop_();
        i = 119998UL;
        while (i) i--;
}
void Timer0_Init(void);                //3秒@24.000MHz                //函数声明


void main(void)
{
        int count=1;                                                                        //按键计数变量
        
    WTST = 0;                                                                                  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1;                                                                                 //扩展寄存器(XFR)访问使能
    CKCON = 0;                                                                                 //提高访问XRAM速度
        
    P0M1 = 0x00;   P0M0 = 0x00;
    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;
        
        P40 = 0;
        
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
        
        while(1)
        {
               
        if (bUsbOutReady)                                                        //如果接收到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();                                                        //
        }
               


                if( P32 == 0 )                                                                //判断P32按钮是否按下
                {
                        Delay20ms();                                                        //延时20ms消抖
                        if( P32 == 0 )
                        {


                                P20 = 0;
                                Timer0_Init();
                                while( P32 == 0 );                                        //等待P32松开
                                
                        }
                }




                if( P32 == 0 )                                                                //判断P32按钮是否按下
                {
                        Delay20ms();                                                        //延时20ms消抖
                        if( P32 == 0 )
                        {
                                Run_State = !Run_State;                                //运行状态取反
                                
                                if( Run_State==1 )                                        //运行
                                {
                                        Timer0_Init();
                                }
                                else
                                {
                                        TR0 = 0;                                                //关闭定时器
                                        P20 = 1;
                                        P21 = 1;
                                }
                                while( P32 == 0 );                                        //等待P32松开
                                
                        }
                }
               
        }
}


}




void Timer0_Init(void)                //500毫秒@24.000MHz
{
        TM0PS = 0x0F;                        //设置定时器时钟预分频
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xDC;                                //设置定时初始值
        TH0 = 0x0B;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}


void Timer0_Isr(void) interrupt 1                //3秒执行
{
        state = !state;               
        
        P20 = state;
        P21 = !state;
}







1定时器选择.png
2中断函数设置.png
3生成函数.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-29 10:19:36 | 显示全部楼层
学习打卡《Ai8051U教学视频》第三天,点亮一颗LED灯

知识点:
1、对于AI8051U的程序有个P40要置1不太明白,后来翻看电路图才知道,这是另一款板子的,在擎天柱上不需要这个代码。
2、设置P0M1,P0M0端口的准双向口不太理解,接下来再看看有更详细的解释没。


本节课视频:
https://v.stcai.com/sv/20205293-19356be94a5/20205293-19356be94a5.mp4




1 ISP下载测试.png
2 程序编写.png
3点灯成功.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-29 10:23:44 | 显示全部楼层
学习打卡《Ai8051U教学视频》第二天,硬件介绍

知识点:
参照视频上的实验箱(目前还没有)的相关硬件部分,每一个元件功能我单独再去搜集了解了下功能。

看到视频和实验板和之前看到的不太一样,不知道到时候使用的时候是不是一样的功能,认真做好笔记,期待实物到手后再仔细研究。

把擎天柱板子上的插针都焊上,放在之前的简易板子上测试,通过。这个擎天柱板子配C口方便多了。


本节课视频:
https://v.stcai.com/sv/4ab26a33-1934c4b3f48/4ab26a33-1934c4b3f48.mp4





自己焊的插针.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-16 06:40:25
已绑定手机

5

主题

19

回帖

193

积分

注册会员

积分
193
发表于 2025-5-29 10:27:42 | 显示全部楼层
学习打卡《Ai8051U教学视频》第一天,序言及学习前准备工作

知识点:
冲哥老师讲解不急不慢,节奏适合我,一边看一边理解,可以暂停下来思考和练习。希望这个状态坚持到最后。加油!

学习方法最重要,要记笔记,尽量多的问号提出来,课后一个一个找到解决方法。

和跑步一样的道理,“群羊效应”会使一个人的毅力形成习惯,所以本论坛要有空就去观摩学习,吸收别人的看法意见、看别人的成果!


本节视频:

https://v.stcai.com/sv/502f521f-19341faaff4/502f521f-19341faaff4.mp4







1新启程,开始学习强大的8051U单片机.png
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 20:28 , Processed in 0.143276 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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