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();
}
|