【AI8051U擎天柱】学习记录贴
感谢官方 免费+包邮 的 擎天柱 核心板,ai8051u芯片自带usb下载,超级方便,
方法:先按住INT0-P32按键,然后按下power键,然后松开power键,最后再松开INT0-P32按键。
这个过程其实就是在断电状态下,按住INT0给芯片上电操作。
拿到板子先上电点LED灯玩玩,感受一下32位8051的不同。
查看原理图
LED灯在P2口,配置IO,直接用ai-isp工具起飞,这个工具爽歪歪。
延时函数又飞起了
根据ai8051u芯片手册第六章内容新建工程,配置工程
新建多源程序文件
行云流水,一气呵成。
附上demo
【AI8051U擎天柱】学习记录贴-2
usb不断电下载,根据视频和ai8051u手册,创建工程,添加usb库。
#include "main.h"
#include "led.h"
#include "stc32_stc8_usb.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void Delay1ms(void) //@22.1184MHz
{
unsigned long edata i;
_nop_();
i = 5528UL;
while (i) i--;
}
void DelayMs(unsigned int ms)
{
for(;ms;ms--)
{
Delay1ms();
}
}
void main(void)
{
P_SW2 |= 0x80;//enable xfr
led_Init();
usb_init(); //USB CDC config
IE2 |= 0x80; //enable usb isr
EA = 1;
while (DeviceState != DEVSTATE_CONFIGURED); //wait usb init finish!
for(;;)
{
if (bUsbOutReady)
{
USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回,用于测试)
usb_OUT_done();
}
else
{
led_TrunOn();
// DelayMs(500);
// led_TrunOff();
// DelayMs(500);
}
}
}
只是有一个问题,手册和视频都是用24MHz,但是我用12MHz,下载后可以用usb-cdc
附上代码
【AI8051U擎天柱】学习记录贴-3
定时器学习
使用ai-isp直接生成定时器初始化代码
主函数
不知道usb源码在哪,看不到,usb初始化时系统时钟是不是有修改。
【AI8051U擎天柱】学习记录贴-4
添加按键驱动,延时去抖动
附上代码
【AI8051U擎天柱】学习记录贴-5
多任务处理是指在单个处理器上同时管理多个程序或任务的能力。
在单片机环境中,这通常意味着通过时间分割和优先级调度,使得多个任务看起来像是同时运行的。
小系统单片机中使用最多的就是时间分割多任务处理,
本次学习的就是时间片分割的轮询多任务,这种处理方式极大地提高了系统的响应性和效率。
任务处理
附上代码
页:
[1]