1.硬件连接 IC STM8S105K4T6 引脚 IO-31 PIN PD6/UART2_RX IO-30PIN PD5/UART2_TX
2. 库文件调用 #include "stm8s.h" #include "stm8s_uart2.h"
3 串口参数配置初始化
void UART2_Configuration(void)
{
/*高速时钟*/
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
/* 寄存器恢复初始值 */
UART2_DeInit();
/* 初始化串口2(波特率115200,数据8位,1个停止符,没有校验,禁用同步,允许收发)*/
UART2_Init((uint32_t)115200, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO,
UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
/*开启UART2_IT_RXNE_OR中断 */
UART2_ITConfig(UART2_IT_RXNE_OR, ENABLE);
/*开启UART2_IT_TXE中断 */
//UART2_ITConfig(UART2_IT_TXE, ENABLE);
/* 打开 UART */
UART2_Cmd(ENABLE);
/* 打开中断 */
//enableInterrupts();
}
发送数据
/* 发送8位数据*/
UART2_SendData8(0x64);
/* 等待发送完成标志 */
while (UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET);
接收 ,可以在主函数中接收,也可以在串口中断中接收数据。。
INTERRUPT_HANDLER(UART2_RX_IRQHandler, 21)
{
disableInterrupts();
if(UART2_GetITStatus(UART2_IT_RXNE)!= RESET)
{
RXData=UART2_ReceiveData8();
}
enableInterrupts();
}
|