1. 本程序使用一個(gè)定時(shí)器和任意 2 個(gè) I/O 口模擬一個(gè)串行口。
2. 1位起始位,8位數(shù)據(jù)位,1位停止位。發(fā)數(shù)據(jù)位時(shí)先發(fā)低位。
3. 支持半雙工通訊。收、發(fā)波特率相同。
4. 應(yīng)把定時(shí)器中斷優(yōu)先級設(shè)置為最高級。
5. 本程序每接收一個(gè)字節(jié)后就把它放到一個(gè)隊(duì)列緩沖區(qū)中(也可使用環(huán)行緩沖區(qū)),
待緩沖區(qū)滿后,將緩沖區(qū)中的內(nèi)容原樣發(fā)回。這是為了測試多字節(jié)連續(xù)收發(fā)的
能力和簡化程序。實(shí)際應(yīng)用中應(yīng)防止緩沖區(qū)溢出。
6. 由接收轉(zhuǎn)換到發(fā)送時(shí)要先調(diào)用 soft_send_enable ();
由發(fā)送轉(zhuǎn)換到接收時(shí)要先調(diào)用 soft_receive_enable ()。
7. 發(fā)送最后一個(gè)字節(jié)后如果要立刻轉(zhuǎn)為接收,必須等待最后一個(gè)字節(jié)后發(fā)送完畢
while ( rs_f_TI == 0) // 等待最后一個(gè)字節(jié)發(fā)送完畢
標(biāo)簽:
程序
定時(shí)器
串行口
模擬
上傳時(shí)間:
2016-10-22
上傳用戶:tonyshao