標(biāo)題:
STC8G1K08-SOP16單片機(jī)串口1通訊正常,串口2死活不出信號(hào)
[打印本頁(yè)]
作者:
JJJ2u
時(shí)間:
2023-12-12 00:33
標(biāo)題:
STC8G1K08-SOP16單片機(jī)串口1通訊正常,串口2死活不出信號(hào)
新手求助!使用STC8系列MCU,串口1 通訊正常!串口2死活不出信號(hào),求助!
#include "stc8g.h"
#include "intrins.h"
#include "stdio.h"
void Uart2_Isr(void) interrupt 8
{
if (S2CON & 0x02) //檢測(cè)串口2發(fā)送中斷
{
S2CON &= ~0x02; //清除串口2發(fā)送中斷請(qǐng)求位
}
if (S2CON & 0x01) //檢測(cè)串口2接收中斷
{
S2CON &= ~0x01; //清除串口2接收中斷請(qǐng)求位
}
}
void Uart2_Init(void) //115200bps@22.1184MHz
{
S2CON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR &= 0xFB; //定時(shí)器時(shí)鐘12T模式
T2L = 0xFC; //設(shè)置定時(shí)初始值
T2H = 0xFF; //設(shè)置定時(shí)初始值
AUXR |= 0x10; //定時(shí)器2開始計(jì)時(shí)
IE2 |= 0x01; //使能串口2中斷
}
void main()
{
Uart2_Init();
ES = 1;
EA = 1;
while(1){
printf("Uart Test !\r\n");
}
}
復(fù)制代碼
作者:
CQQ@123
時(shí)間:
2023-12-12 09:11
串口使能位為ES2
作者:
STC新未來(lái)
時(shí)間:
2023-12-12 09:28
printf函數(shù)默認(rèn)通過(guò)串口1輸出,如果想通過(guò)串口2輸出,需要改寫putchar函數(shù):
char putchar(char c)
{
S2BUF = c;
while((S2CON & 2) == 0);
S2CON &= ~2; //Clear Tx flag
return c;
}用上面寫法需要將串口2中斷關(guān)閉,或者刪除中斷函數(shù)里清除發(fā)送中斷標(biāo)志指令。
若樓主還有疑問(wèn)可去STCAI官方咨詢
作者:
老夫任我行
時(shí)間:
2023-12-12 09:44
寄存器有沒(méi)有弄錯(cuò)?串口2的數(shù)據(jù)寄存器是S2BUF哦。另外配置串口2一般用S2CON=0x10
作者:
JJJ2u
時(shí)間:
2023-12-12 10:54
老夫任我行 發(fā)表于 2023-12-12 09:44
寄存器有沒(méi)有弄錯(cuò)?串口2的數(shù)據(jù)寄存器是S2BUF哦。另外配置串口2一般用S2CON=0x10
官方給出的示例寄存器是S2BUF哦!S2CON=0X50和0x10都試過(guò)了
作者:
coody_sz
時(shí)間:
2023-12-12 11:30
不可以直接下載STC ISP返利程序里的例子測(cè)試嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1