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

|
|