找回密码
 立即注册
查看: 945|回复: 13

STC8H3K32S2 串口发送0X44电脑接收到的是0x60 0xFE

[复制链接]

2

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-6-6 14:17:38 | 显示全部楼层 |阅读模式
因为需要用ADC所有这次用了STC8H3K32S2 20脚的  调试串口的时候很奇怪  我发0x44 电脑却接收到的是0x60 0xFE  定时器1和2都试了 不行   STC8H1K08 20脚 的一样的程序是正常的   无语了  来位大佬帮看看


#include "STC8H.H"
#define     MAIN_Fosc       12000000UL  //define main clock
#define Timer0_Reload                 (65536UL -(MAIN_Fosc / 100))       //Timer 0 intrrrupt, 100/s
#define                BRT1152                        (65536UL -(MAIN_Fosc / 115200/4))
#define                BRT576                        (65536UL -(MAIN_Fosc / 57600/4))
#define                BRT384                        (65536UL -(MAIN_Fosc / 38400/4))
#define                BRT9600                        (65536UL -(MAIN_Fosc / 9600/4))



void UART1_init(void)
{

        P3M0 |=0x02;                                                                //P31, TXD
        P3M1 &=~0x02;               
        TXD= 1;       

        P3M1 |=0x01;                                                                //P30, RXD
        P3M0 &=~0x01;       

        P_SW2|=0X80;
        P_SW1 = 0x00;                                 //set
        SCON = 0x50;
    T2L = BRT9600;
    T2H = BRT9600 >> 8;
         
    AUXR |= 0x15;                        //timer2 1T mode, and start timer2                       
        ES=1;                        //ENABLE uart1 interrupt
}



void UART1_send(unsigned char dat)                        //   Uart1
{
         SBUF=dat;
         while(!TI);  
         TI=0; // Clear TX flag
}



void main()
{
        init();
        LED_B = 0;
        LED_G = 0;
        LED_R = 0;       
        LED_Y = 0;
        delay_ms(500);
        LED_G = 1;
        LED_R = 1;       
        LED_Y = 1;
       
        UART1_init();
        delay_ms(100);
       
        while (1)
        {       
                LED_Y = 0;
                UART1_send(0x44);
                   delay_ms(100);
                LED_Y = 1;
                delay_ms(100);
        }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-6-6 14:25:09 | 显示全部楼层
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数
回复 支持 反对

使用道具 举报 送花

2

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-6-6 15:40:22 | 显示全部楼层
Lkck*** 发表于 2024-6-6 14:25
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数

这有啥关系?最多有点偏差   但是现在是出了2个字节  而且8H1K08就是正常的  如果3K32因为这个不行 这个就是单片机的问题
回复 支持 反对

使用道具 举报 送花

2

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-6-6 15:55:07 | 显示全部楼层
Lkck*** 发表于 2024-6-6 14:25
我也无语了,你为啥要用12000000?
串口通信一般推荐用11059200或其整倍数

#define     MAIN_Fosc       11059200UL  //define main clock
#define Timer0_Reload                 (65536UL -(MAIN_Fosc / 100))       //Timer 0 intrrrupt, 100/s
#define                BRT9600                        (65536UL -(MAIN_Fosc / 9600/4))


改了 还是一样 发44  收60 FE
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-6-6 16:34:56 | 显示全部楼层
你下载程序的时候主频选择的正确吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

2

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-6-6 17:00:13 | 显示全部楼层
_奶*** 发表于 2024-6-6 16:34
你下载程序的时候主频选择的正确吧

正确的  这个没问题 我只是不知道这2个芯片之间有什么特殊的差别导致这个原因
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-6-6 18:13:21 来自手机 | 显示全部楼层
可以先下载例程检测一下。
回复 支持 反对

使用道具 举报 送花

2

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-6-7 08:30:18 | 显示全部楼层
so*** 发表于 2024-6-6 18:13
可以先下载例程检测一下。

我试过范例程序的 也是不行的 范例更加奇怪  发的44  结果显示发的0D 0A  收的18 FE   论坛里面有STC的工程师吗?你们试试  我现在就一个光板在测试电源都是usb电源
截图202406070828146758.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-6-7 08:57:33 | 显示全部楼层
zty35*** 发表于 2024-6-7 08:30
我试过范例程序的 也是不行的 范例更加奇怪  发的44  结果显示发的0D 0A  收的18 FE   论坛里面有STC的工 ...

你点发送回车当然是0D 0A了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-6-7 09:09:07 | 显示全部楼层
zty35*** 发表于 2024-6-7 08:30
我试过范例程序的 也是不行的 范例更加奇怪  发的44  结果显示发的0D 0A  收的18 FE   论坛里面有STC的工 ...

官方提供的例子都是测试过,而且经过很多用户验证的。
能不能详细介绍一下你用的是哪个例程包下的哪个例子进行的测试?
烧录到芯片前有修改过哪些地方?烧录时的硬件选项是如何设置的?
最好是直接使用例程原本的hex文件直接烧录测试,如果你的编译器有问题,就算什么都不改只是重新编译一次,生成的hex文件可能就会有问题。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:39 , Processed in 0.201599 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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