问题:串口只能发数据,不能收数据。奇怪现象1:直接把2、3引脚对接,有收到的现象;接上串口线,在串口线另一端接2、3引脚,没反应。用串口调试,只能收不能发。
程序如下:
#include <stm8s208mb.h>
#include <system.h>
void UART3_sendchar(u8 DATA)
{
while((UART3_SR & 0x80)==0x00);
UART3_DR=DATA;
}
main()
{
cbi(PD_DDR,6);cbi(PD_CR1,6);cbi(PD_CR2,6);
sbi(PD_DDR,5);cbi(PD_CR1,5);cbi(PD_CR2,5);
_asm("sim");
////////串口3 初始化//////////
UART3_CR1=0x00;
UART3_CR2=0x00;
UART3_CR3=0x00;
UART3_BRR2=0x00;
UART3_BRR1=0x0d;
UART3_CR2=0x2c;
_asm("rim");
while (1)
{
UART3_sendchar(0x08);
delay_ms(1000);
}
}
@far @interrupt void UART3_Recv (void)
{
u8 data;
data=UART3_DR;
UART3_sendchar(data);
return;
}
原理图部分: |