STM8 UART1 发送乱码,心中千万头草泥马在策马奔腾!求助!
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include "stm8s_clk.h"
#include "stm8s_gpio.h"
#include "stm8s_uart1.h"
#include "stm8s.h"
void Init(void);
void Uart1Send8String(u8 *pStr,u8 length);
void delayMs(u32 ms){
u32 count =1000;
for(;ms>0;ms--){
for(;count>0;count--){
_asm("nop");
}
}
}
void Uart1Send8String(u8 *pStr,u8 length){
u8 i;
for(i=0;i<length;i++){
while(UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
UART1_SendData8(*pStr);
delayMs(100);
pStr++;
}
}
void Init(void){
CLK_DeInit();
CLK_HSICmd(ENABLE);
while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)== RESET);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);//16MHz 8分频为2MHz
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE);
//GPIO初始化
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOC);
GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_OD_LOW_FAST); //USART1_TX-PD5
GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT); //USART1_RX-PD6
UART1_DeInit();
UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, \
UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
//UART1_ITConfig(UART1_IT_RXNE, ENABLE);
//UART1_ITConfig(UART1_IT_TXE, ENABLE);
UART1_Cmd(ENABLE);
}
void main(void)
{
Init();
while(1)
Uart1Send8String("abcdef",0x06);
}