|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
Atmega16多機通訊求助各位。≌{(diào)了好久都不通。!先謝。。 |
| 作者:good_ys 欄目:單片機 |
void uart_init(void) //串口初始化 { UBRRL = 0x19; /*波特率9600HZ,Fos:4M*/ UBRRH = 0x00; UCSRA = 0x01; /*多機通訊模式*/ UCSRB = 0x9C; /*接收中斷使能,接收,發(fā)送使能*/ UCSRC = 0x86; /*異步工作9位字符方式*/ } void Mcusend_byte(uCHAR ch) //發(fā)送數(shù)據(jù)函數(shù) { while(!(UCSRA&(1<<UDRE))) ; UDR=ch; } SIGNAL(SIG_UART_RECV) //串口中斷接收數(shù)據(jù)函數(shù) { unsigned CHAR ch; if(UCSRB&0x02) { ch=UDR; if(ch==Watch_id) //檢測是否是與自己ID號一致 { UCSRB|=0x01; //Mark 發(fā)送 Mcusend_byte(0x33); //返回數(shù)據(jù) cbi(UCSRA,0); } } else { ch=UDR; if(ch==Watch_id) { UCSRB&=0xfC; //Space 發(fā)送 Mcusend_byte(0x55); //返回數(shù)據(jù) } sbi(UCSRA,0); } } 對單個Mcu燒寫程序后,能收到該Mcu返回的正確數(shù)據(jù)。對多個Mcu燒寫后,收到的數(shù)據(jù)錯誤。多機通訊程序有問題嗎?? 請教各位!!Mcu:Atmeg16 * - 本貼最后修改時間:2005-4-7 12:26:48 修改者:good_ys |
| 2樓: | >>參與討論 |
| 作者: americ 于 2005/4/6 14:56:00 發(fā)布:
線是怎么連的?? |
|
| 3樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/6 15:03:00 發(fā)布:
to americ Mcu 的Rxd并聯(lián),Txd并聯(lián)后接光偶與PC軟件通訊。 謝謝你! |
|
| 4樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/4/6 16:03:00 發(fā)布:
這程序有一個思路問題,想知道原因,得首先回答我的問題! 請問您努力學習單片機的最終愿望是做什么? 有四個答案可選: A.為了養(yǎng)家糊口 B.想混日子 C.這行很有前途 D.畢生愿望 |
|
| 5樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/6 16:16:00 發(fā)布:
to 宇宙飛船 答案: E.興趣愛好 F.工作需要 剛學AVR不久,望指教。。 |
|
| 6樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/6 17:19:00 發(fā)布:
謝謝各位。! 在小弟思考下,問題解決了。!現(xiàn)在一切通訊都正常。謝謝21IC的朋友。! * - 本貼最后修改時間:2005-4-6 19:06:48 修改者:good_ys |
|
| 7樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/4/6 21:04:00 發(fā)布:
靠!把主貼的東東也刪除了!上21IC 這么久還是第一次見! |
|
| 8樓: | >>參與討論 |
| 作者: americ 于 2005/4/7 9:08:00 發(fā)布:
如何搞通的?說來聽聽,說不定能給你一個褲子。 |
|
| 9樓: | >>參與討論 |
| 作者: zhousd 于 2005/4/7 11:43:00 發(fā)布:
TO:宇宙飛船,你也太狂了吧,我也第一次見這種人。 |
|
| 10樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/7 12:36:00 發(fā)布:
to americ 謝謝你的關(guān)注!經(jīng)過思考和調(diào)試后,PC串口與50路Mcu輪尋方式通訊都沒問題了。修改后程序如下: void uart_init(void) //串口初始化 { UBRRL = 0x19; /*波特率9600HZ,Fos:4M*/ UBRRH = 0x00; UCSRA = 0x01; /*多機通訊模式*/ UCSRB = 0xdc; /*接收中斷使能,接收使能,發(fā)送關(guān)閉*/ UCSRC = 0x86; /*異步工作9位字符方式*/ } void Mcusend_byte(uCHAR ch) //發(fā)送數(shù)據(jù)函數(shù) { UCSRB|=0x08; //使能發(fā)送 while(!(UCSRA&(1<<UDRE))) ; UDR=ch; } SIGNAL(SIG_UART_RECV) //串口中斷接收數(shù)據(jù)函數(shù) { unsigned CHAR ch; if(UCSRB&0x02) { ch=UDR; if(ch==Watch_id) //檢測是否是與自己ID號一致 { UCSRB|=0x01; //Mark 發(fā)送 Mcusend_byte(0x33); //返回數(shù)據(jù) cbi(UCSRA,0); } } else { ch=UDR; if(ch==Watch_id) { UCSRB&=0xfC; //Space 發(fā)送 Mcusend_byte(0x55); //返回數(shù)據(jù) } sbi(UCSRA,0); } } SIGNAL(SIG_UART_TRANS) //數(shù)據(jù)發(fā)送完畢中斷函數(shù) { UCSRB&=0xf7; //關(guān)閉發(fā)送 } 調(diào)試心得: 如果50路Mcu串口發(fā)送腳Txd同時使能的話,把電平拉住了,故上位機收不到正確數(shù)據(jù),所以采取發(fā)送時使能Txd腳,數(shù)據(jù)發(fā)送完后關(guān)閉Txd腳,解決問題! * - 本貼最后修改時間:2005-4-7 12:54:36 修改者:good_ys |
|
| 11樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/7 12:52:00 發(fā)布:
to 宇宙飛船 你可以不看此貼,或看看便走。但是你不答問題而是回復侮辱人的話我就有意見了。希望你能尊重別人!!!! * - 本貼最后修改時間:2005-4-7 13:01:15 修改者:good_ys |
|
| 12樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/7 13:10:00 發(fā)布:
to all 主貼刪除原因如下: 1,問題已經(jīng)解決不再麻煩各位大蝦幫小弟考慮。 2,想整理后寫篇調(diào)試心得出來。 |
|
| 13樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/4/7 14:41:00 發(fā)布:
TO:good_ys 我有侮辱人的話嗎,大家來評評理! 道先,您沒有在給出答案中選,也就是沒有答對,其次您也很難知道我想要的標準答案! 您這個程序雖然可以運行,但還有不完善的地方。 我只能送李白的(將進酒)中的兩句詩給您:黃河之水天上來,奔流到海不復回。 |
|
| 14樓: | >>參與討論 |
| 作者: zhousd 于 2005/4/7 15:32:00 發(fā)布:
樓上老是行雷總不見雨下,宇宙有多大知道嗎? 宇宙是無極限,無論飛船是如何的飛這一輩子也別想穿越整個宇宙空間。 我贊成貼主good_ys的說法,人總不能太狂的,否則會很吃虧。 我的模擬,數(shù)字,MCU,VHDL 也很熟練,但我從來不會說能在10 天搞定CPLD/FPGA,10天內(nèi)搞定所有浮點程序。還口出狂語說將來10天搞定linux ,一句話,給我的感覺就是狂妄自大! 可知道上來21IC這里有多少人是你的前輩,你雖然有一點點的技術(shù)但相對于21IC這里的海龜們距離是多少,你自已心知肚明,從你發(fā)貼開英語論壇可知你不是海龜,希望你能有所改改吧,要不也很難在這里混下去的,說話有所得罪,請原涼。 |
|
| 15樓: | >>參與討論 |
| 作者: zhousd 于 2005/4/7 17:25:00 發(fā)布:
宇宙飛船,看過你的所有貼子,特別在此說聲對不起。 * - 本貼最后修改時間:2005-4-7 17:26:21 修改者:zhousd |
|
| 16樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/4/7 21:13:00 發(fā)布:
TO:good_ys 想不到您還有回馬槍這一招! 害得我被zhousd老哥大罵,真是欲哭無淚呀! |
|
| 17樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/7 21:54:00 發(fā)布:
to 宇宙飛船 不管我出什么招,都無攻擊他人之意。不管你怎么回帖,你都阻止不了他人學習知識,提高自身的步伐。在我遇到困難,苦苦思考仍解決不了問題而求助大家時,會有21IC的朋友伸手拿小弟一把。 |
|
| 18樓: | >>參與討論 |
| 作者: 宇宙飛船 于 2005/4/8 10:26:00 發(fā)布:
請good_ys盡管放馬過來,如果能找到駁倒我的理由,說明您是 一個了不起的人物,我會打心底敬佩您,看來我和您的舌戰(zhàn)的少不了的,請您準備吧。 |
|
| 19樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/8 10:55:00 發(fā)布:
to zhousd 感謝你的關(guān)注與支持! 發(fā)表下鄙人對E文的淺薄看法到是很樂意,至于駁倒宇宙飛船我認為沒這個必要,小弟也還不夠資格。 首先表明我的E文很菜,但在不斷的學習中。做研發(fā)工作E文固然重要,很多資料只有E文版。我工作兩年,遇到過必須讀懂才能開展工作的此類資料有Mtorola 32位Mcu資料 DRAGONBALL MC68VZ328,Eponson打印頭資料192G,190G,150II,這些項目都已順利完成。學習E文是一項須持之以恒,耗費時間較多的工作。由于大部分人沒有好的交流環(huán)境,需要經(jīng)常刻意花時間去背背單詞,記記語法,練練聽力,一點一點積累,E文水平也就慢慢提高。學習E文,靠耐力,靠興趣,靠實際行動,如果僅僅靠天天在談子里喊喊口號,灌灌水,來提升E文水平肯怕不大可能。 |
|
| 20樓: | >>參與討論 |
| 作者: good_ys 于 2005/4/8 11:12:00 發(fā)布:
to 宇宙飛船 我不會把時間浪費在與你的口水之爭上,這樣毫無益處,我也懶得耗費這個精力。有多余的時間我會去看21IC其他網(wǎng)友的貼,思考別人提出的問題,琢磨別人的編程思想,回復自己的觀點看法,這樣才能達到雙贏目的,才是我最樂意做的事。 如你后面的口水帖我都不會回復。如這些貼中有不敬之處,望諒! * - 本貼最后修改時間:2005-4-8 11:13:45 修改者:good_ys |
|
| 21樓: | >>參與討論 |
| 作者: zhousd 于 2005/4/8 14:10:00 發(fā)布:
我還是贊同good_ys 的觀點,頂! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |