遇到同样的问题了,楼主后来解决了吗?
后来我把不用的串口给禁用了。然后就正常了 17T可以同时跑DMA SPI和DMA UART 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 LED1P11
#define LED2P36
#define LED3P35
#define LED4P30
#define LED5P31
#define LED6P33
#define LED7P14
#define LED8P15
#define LED9P34
#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;
}
页:
1
[2]