#include "stm8s.h"
#include "stm8s_uart2.h"
#include "stm8s_gpio.h"
#include "stm8s_clk.h"
#include "stdio.h"
void Delay(u16 time)
{
while(time != 0)
{
time--;
}
}
//初始化串口 波特率115200,8位数据位 1位停止位,无奇偶校验
//查询发送,中断方式接收。
void UART_Init(void)
{
UART2_DeInit();
UART2->BRR2 = 0X01; //设置波特率为9600
UART2->BRR1 = 0X34;
UART2->CR2 = 0X2C; //设置串口中断,允许接收发送
// UART2_Cmd(ENABLE);
}
void Init_CLK(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//设置主频为内部高速时钟,8MHz
}
void UART2_SendChar(unsigned char dat)
{
while((UART2->SR & 0X80) == 0X00);
UART2->DR = dat;
}
void main(void)
{
Init_CLK();
enableInterrupts();
UART_Init();
while(1);
}
#pragma vector=0x14
__interrupt void UART2_RX_IRQHandler(void)
{
UART2_SendChar(0x02);
}
这是我的UART2的程序,用的是硬件仿真,STM8S105,每次在线仿真都不能把0x02输出来,具体是什么问题啊,用过的朋友给指点一二吧,先谢谢了。 |