MCU STM8S105K4 设置为一个起始为,8个数据位,无校验,一个停止位,用串口助手 发送能够 接收的数据,还是正确的,
static void UART_Config(void)
UART2_DeInit();
UART2_Init((uint32_t)9600, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO,
UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
}
/* Enable the UART Receive interrupt: this interrupt is generated when the UART
receive data register is not empty */
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
/* Enable UART */
UART2_Cmd(ENABLE);
/* Enable general interrupts */
enableInterrupts();
中断接收
INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
unsigned char temp=0;
unsigned char temp_state=0;
/* Read one byte from the receive data register */
/* temp_state=UART2->SR;
if(temp_state&0x01) // 奇偶 ERROR
{
temp=8;
UART2_ReceiveData8();
//return;
}
else*/
temp_state=UART2->SR;
if((temp_state&0x01)!=1)
//if(UART2_GetITStatus(UART2_IT_PE) == RESET)
{
temp=UART2_ReceiveData8();
}
}
不知道是不是 哪里设置错了 |