kang_master 发表于 2025-5-25 23:48:41

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

学习打卡《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;                                       

      }
}


国芯人工智能 发表于 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实现高效连接和应用。

[本文内容由国芯人工智能辅助生成,仅供参考]

kang_master 发表于 2025-5-26 01:18:20

USB不停电的代码,能不能封装成一个简单调用的函数,只加到头文件中就行,不需要在代码中间多处添加?不知道这样行吗?

国学芯用 发表于 2025-5-26 09:15:58

在同一个帖子中打卡,不要再重新开帖了

kang_master 发表于 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、注意转义的时候要多一个符号,如%%。

kang_master 发表于 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-19375e5d457/4528efe-19375e5d457.mp4












kang_master 发表于 2025-5-28 23:47:13

学习打卡《Ai8051U教学视频》第七天,定时器中断的使用

定时器知识:中断是单线程执行中临时断开,用于计时,每隔一固定时间完成一项操作,替代长时间的Delay,提高程序的运行效率。
测试代码验证:
#include "ai8051u.h"                        //调用头文件
#include "stc32_stc8_usb.h"      //调用头文件
#include "intrins.h"                        //d调用头文件
#define u8unsigned 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.000MHzDelay20ms();
{
      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;
}







kang_master 发表于 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




kang_master 发表于 2025-5-29 10:23:44

学习打卡《Ai8051U教学视频》第二天,硬件介绍

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

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

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

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





kang_master 发表于 2025-5-29 10:27:42

学习打卡《Ai8051U教学视频》第一天,序言及学习前准备工作

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

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

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

本节视频:
https://v.stcai.com/sv/502f521f-19341faaff4/502f521f-19341faaff4.mp4







页: [1] 2
查看完整版本: 学习打卡《Ai8051U教学视频》第四天,USB不停电下载