單片機(jī)串口通信編程注意事項(xiàng)
本次小結(jié)的主要目的是更加明確單片機(jī)的串口中斷是如何發(fā)生的。即:是如何觸發(fā)串口中斷的發(fā)送功能的。在說(shuō)明中我使用特殊的字體顏色來(lái)強(qiáng)調(diào)重點(diǎn)部分和注意事項(xiàng)。
本文引用地址:http://www.ex-cimer.com/article/201611/320301.htm程序一:
本程序是使用軟件設(shè)置TI來(lái)實(shí)現(xiàn)串口中斷的觸發(fā),如果在初始化函數(shù)中不增加“TI=1;”這條語(yǔ)句,那么是不會(huì)觸發(fā)中斷的
#include
#define uint unsigned int
#define uchar unsigned char
void InitUart(void)
{
}
main()
{
}
void uart(void) interrupt 4
{
}
程序二:
本程序是使用在軟件的初始化時(shí)在串口緩沖區(qū)SBUF中先放一個(gè)數(shù)據(jù)來(lái)實(shí)現(xiàn)串口中斷的觸發(fā),如果在初始化函數(shù)中不增加“SBUF = 0x00;”這條語(yǔ)句,那么是不會(huì)觸發(fā)中斷的
#include
#define uint unsigned int
#define uchar unsigned char
void InitUart(void)
{
}
main()
{
}
void uart(void) interrupt 4
{
}
程序三:
在初始化函數(shù)中即不要“TI=1;”語(yǔ)句,也不要“SBUF=0x00;”語(yǔ)句就形成了程序三,這個(gè)程序是用來(lái)與上面的兩個(gè)程序?qū)Ρ日f(shuō)明的。程序三是不能正確的發(fā)送數(shù)據(jù)的,串口中斷服務(wù)程序一直都不會(huì)進(jìn)去的!
不知道說(shuō)明白沒(méi)有,希望大家可以好好的看看!
自己動(dòng)手調(diào)試一下就會(huì)有很深的體會(huì)?。。?!
評(píng)論