![]() |
發布時間: 2018-1-12 15:39
正文摘要:#include <REG52.H> #include <stdio.h> sbit RS485 = P1^4; bit SendFlag; unsigned int ReData,SenData; void delay(unsigned char i) { unsigned ... |
我有種想哭的感覺!在我的記憶中485通信是A連A,B連B,通信數據有問題,但是比較規律,就是在最后一位改成00,其他的位返回有錯,但是有規律,我折騰了一晚上,結果就是因為A連B,B連A. |
請問這是實現什么功能的 |
tzcl 發表于 2018-5-7 23:32 同求 搞得一頭霧水 |
支持正常 哈多發多大大的大的 |
你的問題解決了嗎?我也是這個問題,真心不知道怎么回事,期待有人能給予解答。 |
pangfive 發表于 2018-1-12 16:39 和程序里面設置的一樣啊 |
是不是232轉485有問題啊 |
dzbj 發表于 2018-1-13 00:29 沒有接反 |
換11.0592晶體并重新設置定時器試試 |
你是不是AB線接反了 |
兄弟,首先你的代碼注釋為零啊,如果是老51單片機的話,晶振12MHZ,當前配置應該是正確的void UartInit(void) //4800bps@12.000MHz { PCON |= 0x80; //使能波特率倍速位SMOD SCON = 0x50; //8位數據,可變波特率 TMOD |= 0x20; //設定定時器1為8位自動重裝方式 TL1 = 0xF3; //設定定時初值 TH1 = 0xF3; //設定定時器重裝值 TR1 = 1; //啟動定時器1 ES = 1; //使能串口中斷 EA = 1; //使能總中斷 } |