|
STM8L除了可以進行串口通信,還可支持紅外通信,智能卡協(xié)議,這些功能后續(xù)會開發(fā),發(fā)布程序源碼。STM8L還可以使用DMA緩存數(shù)據(jù),減少CPU負擔,為了簡單起見,本文沒有用到DMA功能。
只需要簡單的配置發(fā)送的字長度,停止位數(shù),波特率,打開發(fā)送接收,就可以進行串口數(shù)據(jù)收發(fā)。下圖為串口發(fā)送數(shù)據(jù)流程。
對于串口發(fā)送數(shù)據(jù),需要注意的是,打開發(fā)送后,數(shù)據(jù)發(fā)送完成,如果不關(guān)閉中斷,程序會一直進入中斷。所以在確保數(shù)據(jù)發(fā)送完成后,需關(guān)閉中斷,退出發(fā)送數(shù)據(jù)。
本文通過周期性(500ms)的向上位機發(fā)送一組數(shù)據(jù),來演示STM8L的串口通信。串口接收部分程序也已經(jīng)調(diào)試好,只需把while循環(huán)中的程序注釋掉,設置斷點,查看上位機發(fā)送來的數(shù)據(jù)即可。
下圖為串口助手接收到STM8L每隔500ms發(fā)送過來的一組數(shù)據(jù)。

|
|