|
刚学STM8,在做串口通信实验的时候遇到点问题,想请教各位!
操作寄存器的
功能描述:
串口调试助手往MCU发送数据,MCU接到后再回发到串口调试助手上。
MCU的UART_RX,UART_TX,已分别接到CP2102的T和R上
写个测试程序,如果只是MCU往串口调试助手发送数据,PC上可以接受显示,但是当涉及到PC往MCU发送时,就不行了,调试了一个晚上还不行
在调试过程中,串口调试助手也一直往MCU发送数据了,就是没发回。。
请问是什么原因呢。。谢谢!!
代码:
#include "IOSTM8S103F3.h"
void Uart_Init(void)
{
//设置波特率为9600,8个数据位,1个停止位,无奇偶验证
UART1_CR1=0X00;
UART1_CR2=0X00;
UART1_CR3=0X00;
UART1_BRR2=0X00;
UART1_BRR1=0X0D;
//允许接收,发送,开接收中断
UART1_CR2=0X2C;
}
int main( void )
{
asm("sim"); //关闭全局中断
Uart_Init();
asm("rim");
while(1); //一直循环
}
#pragma vector=0x14
__interrupt void UART1_RX_IRQHandler(void)
{
unsigned char c;
c = UART1_DR; // 接收到数据了
while(!(UART1_SR & 0x20 == 0));
UART1_DR = c; // 再发回去
}
|
|