找回密码
 立即注册
查看: 285|回复: 2

求助大佬

[复制链接]

该用户从未签到

18

主题

7

回帖

118

积分

注册会员

积分
118
发表于 2023-8-8 12:10:25 | 显示全部楼层 |阅读模式
#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);
}
求助大佬-1.png

在串口助手应该一秒发送一次hellow word,但是现在没有反应(使用的是屠龙刀三.22023/3/10的板子)

回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:55
  • 签到天数: 136 天

    [LV.7]常住居民III

    26

    主题

    1316

    回帖

    4101

    积分

    论坛元老

    积分
    4101
    发表于 2023-8-9 13:27:24 | 显示全部楼层
    使用你提供的代码测试是正常的,唯一修改的地方是延时函数参数类型定义:

    1. void delay(unsigned int ms)
    2. {
    3.     unsigned int i;
    4.     do{
    5.         i = (uint16_t)(MAIN_Fosc / 6000UL);
    6.         while(--i);
    7.     }while(--ms);
    8. }
    复制代码
    unsigned char 改成 unsigned int 这样才能延时1000ms。

    1.png

    通过USB CDC协议虚拟串口发送数据.zip

    39.16 KB, 下载次数: 16

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    18

    主题

    7

    回帖

    118

    积分

    注册会员

    积分
    118
     楼主| 发表于 2023-8-9 16:13:52 | 显示全部楼层
    谢谢大佬
    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-10 05:56 , Processed in 0.057591 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表