学习目标:在上一节工程添加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
}
}
学习 《Ai8051U教学视频》第五天 对应视频第5集
1.C语言 USB-CDC串口之printf函数的实现也可以看看
学习 《Ai8051U教学视频》第二天楼层7楼
2.数的进制 2进制、10进制、16进制
3.数据的基本类型,想要使用64位的变量,添加申明 : #pragma float64
4. C语言常用运输符
学习 《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速度
学习 《Ai8051U教学视频》第7天 视频第7集 定时器中断
1.前言
2.定时器介绍:
3.
课程中主频是24M, 用的定时器0,我这边设置主频40M,定时器2
4.定时器应用介绍GATE =1时,允许由外部输入INT0控制定时器0,这样可实现脉宽测量
5.函数的定义和声明
6.任务3正在探索中,定时器2 无法关闭计时代码中有个错误应该这样写 AUXR &= 0xEF; //定时器2关闭计时bit4 清0
代码已更新
学习 《Ai8051U教学视频》第8天 对应视频第8集定时器周期性性任务调度
1.周期性任务介绍
任务1:用一个定时器实现这个任务:
LED1 实现0.3秒取反一次,
LED2 实现0.6秒取反一次,
LED3 实现 0.9秒取反一次
通过一个变量计数,假设这个变量1mis自加一次,加到300即为300ms加到600就是600ms;计数到达后重新清0;
9
学习 《Ai8051U教学视频》第9天 先占个楼层
页:
1
[2]