梁工 发表于 2024-5-15 21:13:40

jwd 发表于 2024-5-15 21:02
我刚才测试了一下,使用内部上拉cpu也工作了,但是我还有个疑问,上电时我不加上拉,内部也不上拉,端口 ...

上电时,还没有运行你的用户程序,你的程序做什么操作都无关,因为还没有运行。
上电时,P3.2是高阻,状态不确定,读到可能是高,也可能是低。所以,一定要外接上拉电阻。
USB接充电器时,D+ D-是对地接有电阻的,哟经下拉动作,如果此时P3.2也是低电平,则MCU自动进入USB下载模式。

jwd 发表于 2024-5-15 21:16:04

梁工 发表于 2024-5-15 21:13
上电时,还没有运行你的用户程序,你的程序做什么操作都无关,因为还没有运行。
上电时,P3.2是高阻,状 ...

这下明白了,谢谢梁工!

jwd 发表于 2024-5-16 21:59:36

梁工 发表于 2024-5-15 21:13
上电时,还没有运行你的用户程序,你的程序做什么操作都无关,因为还没有运行。
上电时,P3.2是高阻,状 ...

梁工,还得麻烦你下,我现在用试验箱也出现这种问题了,还是插电脑usb能运行,插充电头不能运行#include "stc32g.h"
#include "stc32_stc8_usb.h"

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void Delay500ms(void)        //@11.0592MHz
{
        unsigned long edata i;

        _nop_();
        _nop_();
        i = 1382398UL;
        while (i) i--;
}


void main()
{
       WTST= 0;
       CKCON= 0;
       EAXFR= 1;       
//    P_SW2 |= 0x80;
   
    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 &= ~0x03;
    P3M1 |= 0x03;
    P3PU = 0x04;

    IRC48MCR = 0x80;
    while (!(IRC48MCR & 0x01));
   
    USBCLK = 0x00;
    USBCON = 0x90;
   
    usb_init();                                     //USB CDC 接口配置

                EUSB=1;
//    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;
   
    while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置
                P40=0;
                while(1)
                {
                        Delay500ms();
                        P60=!P60;
               
                }
//    while (1);
}

/************************************************
函数功能:USB-CDC串口接收数据的回调函数
函数描述:回调函数由USB中断在接收到串口数据时自动调用
          回调函数处理完成串口数据后需要返回1
函数返回:返回1:USB中断服务程序自动完成后续的收尾工作
          返回0:USB会暂停接收串口数据,直到用户自行调用
               usb_OUT_done()函数后USB才会重新恢复接收数据
注意事项:当函数返回1时用户无需调用usb_OUT_done()
          只有返回0时才需要调用usb_OUT_done()进行手动收尾
          强烈建议usb_OUT_callback返回1
************************************************/
BOOL usb_OUT_callback()
{
    USB_SendData(UsbOutBuffer,OutNumber);         //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
   
    return 1;
}

jwd 发表于 2024-5-16 22:01:01

本帖最后由 jwd 于 2024-5-16 22:04 编辑

梁工 发表于 2024-5-15 21:13
上电时,还没有运行你的用户程序,你的程序做什么操作都无关,因为还没有运行。
上电时,P3.2是高阻,状 ...
我用的是stc32的9.6试验箱,请问还有那里需要设置吗?

梁工 发表于 2024-5-16 23:07:16

jwd 发表于 2024-5-16 22:01
我用的是stc32的9.6试验箱,请问还有那里需要设置吗?

试验箱已经考虑好了这些问题。

jwd 发表于 2024-5-16 23:14:53

梁工 发表于 2024-5-16 23:07
试验箱已经考虑好了这些问题。

那我这个现象是怎么出来的呢?

梁工 发表于 2024-5-16 23:18:29

jwd 发表于 2024-5-16 23:14
那我这个现象是怎么出来的呢?

按理不应该出现这个现象的,学习板的用户群非常大,没人遇到过,我也没听说过。
既然是学习板,你测试一个STC的例程看看,比如数码管显示的。

jwd 发表于 2024-5-16 23:27:05

本帖最后由 jwd 于 2024-5-16 23:30 编辑

梁工 发表于 2024-5-16 23:18
按理不应该出现这个现象的,学习板的用户群非常大,没人遇到过,我也没听说过。
既然是学习板,你测试一 ...
我现在就用试验箱闪烁P60的那个灯,插电脑USB正常闪烁,插充电头就不亮jwd:


jwd 发表于 2024-5-16 23:33:06

梁工 发表于 2024-5-16 23:18
按理不应该出现这个现象的,学习板的用户群非常大,没人遇到过,我也没听说过。
既然是学习板,你测试一 ...

工程文件

LEE 发表于 2024-5-17 08:09:55

学习一下,多谢
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16
查看完整版本: 8H/8G/8C/8A系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器