|
20黑幣
我學(xué)習(xí)單片機(jī)一段時(shí)間, 現(xiàn)在學(xué)習(xí)RS485通信.用普中A7
我在12C5A60S2開(kāi)發(fā)板學(xué)習(xí)了一個(gè)用RS485通信的代碼, 是可正常運(yùn)行的, 我用SSCOM32和4IN1的USB->485相互通信也正常.
我把代碼修改一下移植到普中A7開(kāi)發(fā)板和KST開(kāi)發(fā)板處, 在SSCOM32發(fā)送AA 55, 可以令開(kāi)發(fā)板的LED燈發(fā)亮, 但按按鍵1, SSCOM32顯示1個(gè) 05后, 開(kāi)發(fā)板就出現(xiàn)死機(jī)一樣. 要按RESET鍵.
RESET後按鍵2, SSCOM32顯示01 02 後, 開(kāi)發(fā)板又出現(xiàn)死機(jī).
請(qǐng)問(wèn)各位我代碼用在C51中有什么錯(cuò)誤呢?
謝謝
http://www.torrancerestoration.com/bbs/dpj-230566-1.html
|
最佳答案
查看完整內(nèi)容
/********************************************************************
發(fā)送一個(gè)字節(jié)
*********************************************************************/
void Send(uchar x)
{
RS485_DIR=1; //RS485先設(shè)置為發(fā)送
SBUF = x; //將x放入緩沖區(qū)
當(dāng)程序運(yùn)行到這里將觸發(fā)串口中斷,中斷中TI被清0。等跳出串口中斷再執(zhí)行下面的while(!TI);,
就會(huì)永遠(yuǎn)死在這里。兩個(gè)TI清0只能選一個(gè)使用!
while(!TI); //如果還未 ...
|