ercircle 发表于 2025-9-29 18:02:26

张旗红 发表于 2025-9-29 18:01
换了一个串口工具测试,串口助手可以正常接收mcu发来的数据,在接收数据之前需要在串口助手的发送窗预先 ...
不需要的打开就能收到,还是检查工具问题。



张旗红 发表于 2025-9-29 18:09:40

ercircle 发表于 2025-9-29 18:02
不需要的打开就能收到,还是检查工具问题。

好的,我等下再具体测下;
另外,我现在用的串口硬件工具不是你上面发的这个,有没有可能是我现在用的usb工具和isp不兼容导致的ISP串口读不出来mcu发的数据?

ercircle 发表于 2025-9-29 18:22:42

张旗红 发表于 2025-9-29 18:09
好的,我等下再具体测下;
另外,我现在用的串口硬件工具不是你上面发的这个,有没有可能是我现在用的usb ...

标准的串口工具都支持的,可以直接短接工具的TXRX引脚测下。
另外可以在串口线上抓下示波器波形,

Bus Hound抓下USB数据。

张旗红 发表于 2025-9-30 14:36:57

ercircle 发表于 2025-9-29 18:22
标准的串口工具都支持的,可以直接短接工具的TXRX引脚测下。
另外可以在串口线上抓下示波器波形,


我使用另外一个串口助手可以调通,先不使用ISP串口助手了。
但是对该款芯片我有一个疑问点:我发现主函数内即使没有while死循环,程序也会执行成一个死循环,STC的板子都是这样的处理逻辑吗?
测试代码如下:
#include <STC15.h>
#include <intrins.h>

typedef unsigned int u16;      
typedef unsigned char u8;

sbit LED=P1^2;

void main()
{      
      u16 Cycle1;
      u16 Cycle2;
      LED=0;
      for(Cycle1=0;Cycle1<10000;Cycle1++)
      {
                _nop_();
      }
      LED=1;
      for(Cycle2=0;Cycle2<10000;Cycle2++)
      {
                _nop_();
      }

}

LED的波形如下:


ercircle 发表于 2025-9-30 15:19:48

张旗红 发表于 2025-9-30 14:36
我使用另外一个串口助手可以调通,先不使用ISP串口助手了。
但是对该款芯片我有一个疑问点:我发现主函数 ...

跑完重跑嘛,一般都会有个主循环的

张旗红 发表于 2025-9-30 15:54:51

ercircle 发表于 2025-9-30 15:19
跑完重跑嘛,一般都会有个主循环的

好的。就是说我在编写代码时,你说的这个主循环对我是不可见的,是吧?我也改不了这个主循环?如果我在main函数里面加了while死循环,程序就会卡在while死循环里;如果没加while死循环,程序就会卡在那个我不可见的main的主循环里,是这样吧?

ercircle 发表于 2025-9-30 16:05:50

张旗红 发表于 2025-9-30 15:54
好的。就是说我在编写代码时,你说的这个主循环对我是不可见的,是吧?我也改不了这个主循环?如果我在ma ...

应该说是未定义行为,代码跑飞复位重新进入main函数。开发中避免让MCU脱离代码控制 。

张旗红 发表于 2025-9-30 16:10:44

正常来说,应该在main函数里面给出while死循环,让mcu持续运转;但是如果没有给while死循环,main函数会执行到未定义状态,这款芯片对未定义状态会默认执行复位功能,是吧?因为我代码没有调用看门狗,而且烧录时也没勾选“上电硬件自动启动看门狗”。
页: 1 [2]
查看完整版本: STC15W408AS串口调试不通