基于LIB库的USB-CDC转串口函数问题
基于LIB库的USB-CDC转串口函数中添加定时器初始化函数后,数据无法接收,这是什么原因?#include "stc32g.h"
#include "stc32_stc8_usb.h"
#include "Timer.h"
#define FOSC 24000000UL //ISP 下载时需将工作频率设置为 24MHz
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#"; //不停电自动 ISP 下载命令
void main()
{
WTST = 0;
CKCON = 0;
EAXFR = 1;
Timer0_Init(); //*******************************定时器初始化函数
Timer2_Init();
P0M0 =0x00;
P0M1 =0x00;
P3M0 &= ~0x03; //P3.0/P3.1 和 USB 的 D-/D+共用 PIN 脚,
P3M1 |= 0x03; //需要将 P3.0/P3.1 设置为高阻输入模式
IRC48MCR = 0x80; //使能内部 48M 的 USB 专用 IRC
while (!(IRC48MCR & 0x01));
USBCLK = 0x00; //设置 USB 时钟源为内部 48M 的 USB 专用 IRC
USBCON = 0x90; //使能 USB 功能
usb_init(); //调用 USB CDC 初始化库函数
EUSB = 1; //使能 USB 中断
EA = 1;
while (DeviceState != DEVSTATE_CONFIGURED); //等待 USB 完成配置
while (1)
{
if (bUsbOutReady) //查询模式,当硬件接收完成上位机通过串口助手发送数据后
//会自动将 bUsbOutReady 置 1
//接收的数据字节数保存在 OutNumber 变量中
//接收的数据保存在 UsbOutBuffer 缓冲区
{
USB_SendData(UsbOutBuffer,OutNumber); //使用 USB_SendData 库函数可向上位机发送数据
//这里的测试代码为将接收数据原样返回
usb_OUT_done(); //处理完成接收的数据后
//调用 usb_OUT_done 准备接收下一笔数据
}
}
}定时器初始化函数****************************************************
void Timer0_Init()
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初始值
TH0 = 0x00; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0=1;
ET0 = 1; //使能定时器0的溢出中断允许位
EA = 1; //使能总中断
}
/*========================================================================
功能描述:定时器2初始化
入口参数:无
返回值:无
========================================================================*/
void Timer2_Init(void)
{
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0x90; //设置定时初始值
T2H = 0xE8; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
EA= 1;
ET2 = 1; //使能中断
}
顺便请教一下如何基于LIB的USB-HID收发数据{:4_167:}{:4_167:}{:4_167:} 请提供完整的项目程序,这样方便分析。
USB-HID数据收发,屠龙刀例程包里面有相关的例子跟说明文档:
“通过USB HID协议进行STC-ISP调试接口显示使用说明”
已上传完整程序 乘风飞扬 发表于 2024-9-27 10:21
请提供完整的项目程序,这样方便分析。
USB-HID数据收发,屠龙刀例程包里面有相关的例子跟说明文档:
“通 ...
已上传完整程序{:lol:}
页:
[1]