#include "stm8s.h"
#include "stm8s_uart2.h"
#include "stm8s_gpio.h"
#include "stm8s_clk.h"
#include "stdio.h"
char RxFlag = 0;
u8 RxBuffer[5];
u8 RxNum=0;
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 SendByte(uint8_t Dat)
{
while((UART2->SR & 0x80) == 0x00); //等待发送寄存器为空
UART2->DR = Dat;
//while (UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET);
}*/
void main(void)
{
u8 i;
Init_CLK();
UART_Init();
// enableInterrupts();
while(1)
{
}
}
//接收一个字符
/*uint8_t RecByte()
{
uint8_t temp;
temp = UART2->DR;
return temp;
}
*/
#pragma vector=0x17
__interrupt void UART2_RX_IRQHandler(void)
{
//SendByte(RecByte());
}
这是我的程序,我都已经把串口关了,只要发送数据,串口助手上就会接到一些乱七八招的数据, 我发的0x11然后每1S自动发送,然后就看到接收区收到下面这些数据: FF FF FF FD FD FF F9 FF FF FF FF 9F C6 19 11 FD F1 99 FF FE 19 1D 19 11 11 91 91 9F 9F DF FF 19 F9 FE FF F9 F9 99 11 11
|