158470501 发表于 3 天前

学习 《Ai8051U教学视频》第四天 对应视频第四集USB不停电下载程序
学习目标:在上一节工程添加USB库文件,实现USB不停电下载程序

1.深圳国芯人工智能有限公司www.stcai.com到官网下载库函数


新USB库函数使用说明:
1、使用此压缩包中的新USB库函数,用户程序中不需要再对
   USER_DEVICEDESC,USER_PRODUCTDESC,USER_STCISPCMD进行定义
   如已定义,请删除。
2、USB库默认的不停电下载命令为“@STCISP#”
3、新USB库函数不再区分查询库和中断库,已统一为同一个库
   使用set_usb_OUT_callback函数设置回调函数时可实现中断模式
   若不设置回调函数则为查询模式(详情请参考范例程序)
4、使用新的USB的库函数,不需要等待USB配置完成,
   在printf_usb和USB_SendData函数中一对配置状态和忙标志进行了检测
5、所有的调试接口函数都在USB_SendData函数是基础上进行封装
6、printf_usb函数支持keil标准printf函数所支持的全部格式化字符













代码如下:

#include "ai8051u.h"
#include "stc32_stc8_usb.h"
#include "stdio.h"



void main (void)
{
        P_SW2 |= 0x80;   //打开EAXFR
        P2M0 = 0;        P2M1 = 0;        //P2端口(P20-P27)为准双向口

        usb_init();                                     //USB CDC 接口配置
    IE2 |= 0x80;//使能USB中断
    EA = 1;//打开总中断
       
        //使用新的USB的库函数,不需要等待USB配置完成,
        while(1)
        {
                P20 = 0;        //P20端口输出0V
                P21 = 0;        //P21端口输出0V
                P22 = 0;        //P22端口输出0V
//                P23 = 0;        //P23端口输出0V
        }
}









158470501 发表于 前天 08:36

学习 《Ai8051U教学视频》第五天 对应视频第5集



1.C语言 USB-CDC串口之printf函数的实现也可以看看

学习 《Ai8051U教学视频》第二天楼层7楼



2.数的进制 2进制、10进制、16进制

3.数据的基本类型,想要使用64位的变量,添加申明 : #pragma float64


4. C语言常用运输符






158470501 发表于 前天 10:12

学习 《Ai8051U教学视频》第6天 对应视频第6集 I/O输入输出

1.什么是GPIO

2.什么是灌电流,什么是拉电流(推挽输出),准双向口既能做输入(20mA)也能做输出(200uA左右)

3. IO口特性,高低电平的电压范围,实验箱的单片机供电是3.3V ,


4.按键输入检测 :实验箱VCC3.3V, 和擎天柱VCC5V



任务3:      按一下灯亮,按一下灯灭
肉眼可能看不到,但是会感觉到LED的亮度稍暗一点





    WTST = 0;                                                                                  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1;                                                                                 //扩展寄存器(XFR)访问使能 P_SW2 |= 0x80;   //打开EAXF 这两句代码一样
    CKCON = 0;                                                                                 //提高访问XRAM速度





158470501 发表于 前天 10:13

学习 《Ai8051U教学视频》第7天    视频第7集 定时器中断
1.前言


2.定时器介绍:


3.

课程中主频是24M, 用的定时器0,我这边设置主频40M,定时器2


4.定时器应用介绍GATE =1时,允许由外部输入INT0控制定时器0,这样可实现脉宽测量



5.函数的定义和声明





6.任务3正在探索中,定时器2 无法关闭计时代码中有个错误应该这样写 AUXR &= 0xEF;                        //定时器2关闭计时bit4 清0

代码已更新



158470501 发表于 前天 10:13

学习 《Ai8051U教学视频》第8天 对应视频第8集定时器周期性性任务调度


1.周期性任务介绍
任务1:用一个定时器实现这个任务:
LED1 实现0.3秒取反一次,
LED2 实现0.6秒取反一次,
LED3 实现 0.9秒取反一次
通过一个变量计数,假设这个变量1mis自加一次,加到300即为300ms加到600就是600ms;计数到达后重新清0;

158470501 发表于 前天 10:14

9

学习 《Ai8051U教学视频》第9天 先占个楼层
页: 1 [2]
查看完整版本: Ai8051U学习分享