uart1串列埠傳送、接收中斷。
目標:串列埠接收1,點亮led1,接收2點亮led2,接收到其他字元關閉led1和led2。
步驟如下:
1、編寫led.h和led.c檔案。略
2、編寫uart.h和uart.c檔案,其中串列埠配置函式如下:
void usart_configuration(void)//串列埠初始化函式
3、編寫主函式如下:
#include "stm8s.h"
#include "stm8s_clk.h"
#include "led.h"
#include "uart.h"
int main(void)
}4、在stm8s_interrupt.c檔案中編寫中斷處理函式
#pragma vector=0x13
__interrupt void uart1_tx_irqhandler(void)
#pragma vector=0x14
__interrupt void uart1_rx_irqhandler(void)
else if (u8_data=='2')
else
return;
}#endif
心得:在傳送中斷處理函式中一定要記得關閉傳送中斷,否則會一直觸發傳送中斷導致死迴圈,在這個問題上耗了兩天時間。在需要傳送資料時再開啟傳送中斷
STM8串列埠列印除錯資訊
static void uart1sendmsg char msg,uint16 t length void myprintfascii char msg void myprintfint8 uint8 t msg,intlength intlength m for n intlength 1 n ...
STM8 串列埠資料一直卡在讀中斷
stm8 uart1 開啟了讀中斷,初始化 如下 配置串列埠引數為 波特率115200,8位資料位,1位停止位,無校驗,禁止同步傳輸,允許接收傳送 uart1 init u32 115200,uart1 wordlength 8d,uart1 stopbits 1,uart1 parity no,u...
STM32F1的UART4串列埠配置
注意是uart4,不是usart4 在stm32中uart和usart是不相同的 usart是通用同步 非同步序列接收 傳送器 uart是通用非同步收發傳輸器 簡單區分同步和非同步就是看通訊時需不需要對外提供時鐘輸出,我們平時用的串列埠通訊基本都是 uart。usart支援同步模式,因此usart ...