求助大佬
#include "COMM/stc.h" //调用头文件#include "COMM/usb.h"
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void sys_init(); //函数声明
void delay(unsigned char ms);
void main() //主函数
{
sys_init(); //usb功能+io口初始化
usb_init(); //usb库初始化
EA = 1; //cpu开放中断
while(1) //死循环
{
if( DeviceState != DEVSTATE_CONFIGURED )
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
printf("hellow word!\n");
delay(1000);
}
}
void sys_init() //函数定义
{
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; //设置为准双向口
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//设置USB使用的时钟源
IRC48MCR = 0x80; //使能内部48M高速IRC
while (!(IRC48MCR & 0x01));//等待时钟稳定
USBCLK = 0X00;
USBCON = 0X90;
}
void delay(unsigned char ms)
{
unsigned char i;
do{
i = (uint16_t)(MAIN_Fosc / 6000UL);
while(--i);
}while(--ms);
}
在串口助手应该一秒发送一次hellow word,但是现在没有反应(使用的是屠龙刀三.22023/3/10的板子)
使用你提供的代码测试是正常的,唯一修改的地方是延时函数参数类型定义:
void delay(unsigned int ms)
{
unsigned int i;
do{
i = (uint16_t)(MAIN_Fosc / 6000UL);
while(--i);
}while(--ms);
}unsigned char 改成 unsigned int 这样才能延时1000ms。
谢谢大佬
页:
[1]