找回密码
 立即注册
楼主: JC钜

STC8H1K17T串口疑问 | 已解决

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-06-25 17:28:04

3

主题

15

回帖

96

积分

注册会员

积分
96
发表于 2025-6-21 17:08:04 | 显示全部楼层
变形*** 发表于 2025-6-1 14:17
遇到同样的问题了,楼主后来解决了吗?

后来我把不用的串口给禁用了。然后就正常了
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-08-03 19:30:43

2

主题

6

回帖

174

积分

注册会员

积分
174
发表于 2025-8-3 19:30:43 | 显示全部楼层
17T可以同时跑DMA SPI和DMA UART
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 10:49:11
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 2025-12-10 23:23:34 | 显示全部楼层
JC*** 发表于 2024-10-10 10:55
刚发现不能进串口中断的时候,我还以为是虚焊,换了3颗MCU之后还是不行,于是重新换回08T,发现一切正常 ...

麻烦帮我看一下,我用STC8H1K08写的程序,但是电脑的串口助手收不到0X50这个数据,不知道是什么原因?
#include "STC8H.H"
#include "config.H"
#include "intrins.H"
#include "Type_def.h"
#include        "STC8G_H_Delay.h"

#define LED1  P11
#define LED2  P36
#define LED3  P35
#define LED4  P30
#define LED5  P31
#define LED6  P33
#define LED7  P14
#define LED8  P15
#define LED9  P34
#define key   P32

void GPIO_Init(void);

void Uart1_Isr(void) interrupt 4
{
        u8 temp ;
        if (TI)                                //检测串口1发送中断
        {
                TI = 0;                        //清除串口1发送中断请求位
    LED7=!LED7;
        }
        if (RI)                                //检测串口1接收中断
        {
                RI = 0;                        //清除串口1接收中断请求位
                LED8=!LED8;

        }
}

void Uart1_Init(void)        //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位数据,可变波特率,允许接收数据
        AUXR &= 0xBF;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TL1 = 0xE0;                        //设置定时初始值
        TH1 = 0xFE;                        //设置定时初始值
        ET1 = 0;                        //禁止定时器中断
        TR1 = 1;                        //定时器1开始计时
        ES = 1;                                //使能串口1中断
        TI = 0;       
}

void main ()
{
  P_SW2|= 0x80;
        GPIO_Init();
        Uart1_Init();
        EA = 1;
        SBUF=0x50;
        while(1)
        {               
        }
               
}

void GPIO_Init(void)
{
        P1M0 = 0x00; P1M1 = 0x00;  
        P3M0 = 0x00; P3M1 = 0x00;       

}
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-21 13:26 , Processed in 0.106874 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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