void main(void)
{
GPIO_DeInit(GPIOD);
GPIO_Init(GPIOD, (GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3), GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST);
UART1_DeInit();
UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
UART1_Cmd(ENABLE);
while (1)
{
GPIO_WriteReverse(GPIOD, (GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3));
UART1_SendData8(55);
while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET)
{}
while (UART1_GetFlagStatus(UART1_FLAG_RXNE) == RESET)
{}
RxBuffer1[1] = UART1_ReceiveData8();
}
}
LS说得没错,STM8的外设也需要使能外设时钟后才能使用,这点上面跟STM32类似。
CLK_PeripheralClockConfig(CLK_PERIPHERAL_LINUART, 1);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_USART, 1);
是这两个吗
CLK_PeripheralClockConfig(CLK_PERIPHERAL_LINUART, 1);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_USART, 1);
在别的函数里加过了