找回密码
 立即注册
查看: 49|回复: 0

77-串口绘图-使用USB-CDC串口,STC32G144K246实验箱演示程序

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2026-07-21 13:27:09
已绑定手机

231

主题

168

回帖

1069

积分

版主

积分
1069
发表于 2026-7-3 17:01:07 | 显示全部楼层 |阅读模式
77-串口绘图-使用USB-CDC串口,STC32G144K246实验箱演示程序
主程序main.C代码如下(汇编版本在附件中):


/*---------------------------------------------------------------------*/
/* --- Web: www.STCAI.com ---------------------------------------------*/
/* --- BBS: www.STCAIMCU.com  -----------------------------------------*/
/*---------------------------------------------------------------------*/

/*************  功能说明    **************

本例程基于STC32G144K246为主控芯片的实验箱进行编写测试。

程序演示STC-ISP(V6.91P及后续版本)推出的串口绘图功能。

通过USB-CDC虚拟串口输出数据给串口绘图调试接口。

下载时, 选择默认时钟 48MHz (用户可自行修改频率)。

测试流程:
1.烧录演示程序到实验箱,使用USB线连接电脑与实验箱USB1接口。
2.打开STC-ISP软件,选择“调试仿真接口”菜单里的“接口设置”选项,选择“将所有调试接口绑定到USB-CDC/串口助手”。
3.打开“CDC/HID-串口助手”标签页面,选择CDC对应的串口号,设置好波特率,并打开串口。
4.打开STC-ISP软件,选择“调试仿真接口”菜单里的“串口绘图”功能,通过设置菜单勾选“通道1”、“通道2”,数据格式设置“单字节”。
正常情况就可以看到通道1与通道2产生的曲线图。

******************************************/

#include "../comm/STC32G144K246.h"  //包含此头文件后,不需要再包含"reg51.h"头文件
#include "../comm/ai_usb.h"         //USB调试及复位所需头文件

#define FOSC        48000000L
#define T1MS        (65536 - FOSC/1000)

u8 code SIN_TAB[256] =
{
    100, 102, 105, 107, 110, 112, 115, 117, 120, 122, 124, 127, 129, 131, 134, 136,   
    138, 141, 143, 145, 147, 149, 151, 153, 156, 158, 160, 162, 163, 165, 167, 169,   
    171, 172, 174, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 189, 190, 191,   
    192, 193, 194, 195, 196, 196, 197, 198, 198, 199, 199, 199, 200, 200, 200, 200,   
    200, 200, 200, 200, 200, 199, 199, 199, 198, 198, 197, 196, 196, 195, 194, 193,   
    192, 191, 190, 189, 188, 187, 186, 184, 183, 182, 180, 179, 177, 176, 174, 172,   
    171, 169, 167, 165, 163, 162, 160, 158, 156, 153, 151, 149, 147, 145, 143, 141,   
    138, 136, 134, 131, 129, 127, 124, 122, 120, 117, 115, 112, 110, 107, 105, 102,   
    100, 98,  95,  93,  90,  88,  85,  83,  80,  78,  76,  73,  71,  69,  66,  64,
    62,  59,  57,  55,  53,  51,  49,  47,  44,  42,  40,  38,  37,  35,  33,  31,
    29,  28,  26,  24,  23,  21,  20,  18,  17,  16,  14,  13,  12,  11,  10,  9,  
    8,   7,   6,   5,   4,   4,   3,   2,   2,   1,   1,   1,   0,   0,   0,   0,  
    0,   0,   0,   0,   0,   1,   1,   1,   2,   2,   3,   4,   4,   5,   6,   7,  
    8,   9,   10,  11,  12,  13,  14,  16,  17,  18,  20,  21,  23,  24,  26,  28,
    29,  31,  33,  35,  37,  38,  40,  42,  44,  47,  49,  51,  53,  55,  57,  59,
    62,  64,  66,  69,  71,  73,  76,  78,  80,  83,  85,  88,  90,  93,  95,  98,
};

bit f1ms;
u8 dat;

void sys_init();

void main()
{
    sys_init();
    usb_init();  //USB CDC 接口配置
    EA = 1;
   
    f1ms = 0;
    dat = 0;
   
    while (1)
    {
         if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
            continue;

        if (bUsbOutReady)
        {
            //USB_SendData(UsbOutBuffer,OutNumber);  //发送数据缓冲区,长度
            usb_OUT_done();    //接收应答(固定格式)
        }

        if (f1ms)
        {
            f1ms = 0;
            USB_SendData(&dat,1);  //发送通道1数据
            USB_SendData(&SIN_TAB[dat],1);  //发送通道2数据
            dat++;
        }
    }
}

void sys_init()
{
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度

    AUXR |=  0x80;  //1T mode
    TL0 = T1MS;
    TH0 = T1MS >> 8;
    TR0 = 1;
    ET0 = 1;
}

void tm0_isr() interrupt 1
{
    f1ms = 1;
}


77-串口绘图-使用USB-CDC串口.zip (118.35 KB, 下载次数: 4)
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-22 08:58 , Processed in 0.067264 second(s), 44 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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