立创开源链接:https://oshwhub.com/o0v0o/ai8051u-core-board
LQFP48版本

电路特性:
主要参考手册里的的硬件USB直接下载/仿真3.3V原理图:

1.接口:
修改了供电和下载接口,采用Type-C母座,兼容硬件USB直接下载和串口冷启动自动下载(需配合STC8H2K12U自动下载器使用)

2.电源:
将ldo由1117修改为带EN脚的RT9013,添加了按键复位电路以实现手动冷启动USB下载

例程演示:
1.ST7789驱动1.3寸TFT240x240显示屏实验程序-SPI-DMA刷屏

2.内部RTC时钟程序-使用外部32768晶振,才能保证RTC精度

3.DMA SPI刷新OLED12864显示屏程序,SSD1306驱动,0.96寸

4.USB-HID不断电自动下载+点灯例程(这个是自己写的)
#include <AI8051.h>
#include "../library/STC32G_GPIO.h"
#include "../COMM/usb.h" //USB调试及复位所需头文件
#define Timer0_Reload (65536UL -(MAIN_Fosc / 1000)) //Timer 0 中断频率, 1000次/秒
// USB调试及复位所需定义
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#"; // 设置自动复位到ISP区的用户接口命令
void Timer0_Init(void);
void USB_Download_Init(void);
//-------------------------
void delay_ms(u16 ms);
void GPIO_Config(void);
void main()
{
EAXFR = 1;
WTST = 0X00;
CKCON = 0X00;
// P5M1=0X00;
// P5M0=0X00;
// P50=0;
GPIO_Config();
USB_Download_Init();
while(1)
{
P50=1;
delay_ms(1000);
P50=0;
delay_ms(100);
}
}
void GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin=GPIO_Pin_0;
GPIO_InitStruct.Mode=GPIO_OUT_OD;
GPIO_Inilize(GPIO_P5,&GPIO_InitStruct);
}
//========================================================================
// 函数: void delay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void delay_ms(u16 ms)
{
u16 i;
do{
i = MAIN_Fosc / 6000;
while(--i);
}while(--ms);
}
void USB_Download_Init(void)
{
// USB调试及复位所需代码-----
P3M0 &= ~0x03;
P3M1 |= 0x03;
IRC48MCR = 0x80;
while (!(IRC48MCR & 0x01))
;
usb_init();
Timer0_Init();
EUSB = 1; // IE2相关的中断位操作使能后,需要重新设置EUSB
EA = 1; // 打开总中断
//-------------------------
}
void Timer0_Init(void)
{
// Timer0初始化
AUXR |= 0x80; // 定时器时钟1T模式
TMOD &= 0xF0; // 设置定时器模式
TL0 = (u8)(Timer0_Reload % 256); // 设置定时初始值
TH0 = (u8)(Timer0_Reload / 256); // 设置定时初始值
TF0 = 0; // 清除TF0标志
TR0 = 1; // 定时器0开始计时
}
void timer0_int(void) interrupt 1 // 1ms 中断函数
{
if (bUsbOutReady) // USB调试及复位所需代码
{
usb_OUT_done();
}
}
QFN48版本
电路特性:
WS2812可寻址RGB彩灯

QSPI FLASH

例程演示:
1.硬件QSPI访问FLASH-串口监控

2.SPI-DMA发送-驱动WS2812彩灯

|