關於gpio實現uart |
缺席
|
z9278170
一般會員 ![]() ![]() 發表:5 回覆:8 積分:2 註冊:2007-06-24 發送簡訊給我 |
我的硬體設備是ti dsp6713dsk,我需要用到無線傳輸,http://tw.f2.page.bid.yahoo.com/tw/auction/b30908789
這個網址是我找到的藍芽模組,他只要接上uart的tx到藍芽的rx就行! 我打算用dsk板子上的gpio來模擬uart,沒有這方便的基礎,看到板上有人討論過用8051的i/o腳模擬uart, 不知道跟dsp會不會差很多,所以請各位大大幫忙一下囉 |
aki
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
有幾個方法:
(1)追加如 16C550 or 8251 等 searial port. (2)TI MSP430 有用 IAR C 寫用 software UART with GPIO, TI 的網站上有 Source code. ===================引 用 z9278170 文 章=================== 我的硬體設備是ti dsp6713dsk,我需要用到無線傳輸,http://tw.f2.page.bid.yahoo.com/tw/auction/b30908789 這個網址是我找到的藍芽模組,他只要接上uart的tx到藍芽的rx就行! 我打算用dsk板子上的gpio來模擬uart,沒有這方便的基礎,看到板上有人討論過用8051的i/o腳模擬uart, 不知道跟dsp會不會差很多,所以請各位大大幫忙一下囉 |
vk8051
一般會員 ![]() ![]() 發表:22 回覆:33 積分:21 註冊:2007-08-10 發送簡訊給我 |
有一個方法,簡單但是比較笨~給你參考~
你先寫一個delay寬度跟你要的鮑率相同,假設是9600 kbps!! 那一個bit應該是104 us吧~詳細你在算一下!! 然後利用一個外部中斷去觸發你的uart收碼, 第一個bit是low所以呼叫delay然後在讀hi或low這樣依序去讀回10個bit前後的都不要中間的8個bit就是資料了!! 送碼也是一樣~ 這樣就可以了! 如下的程式~~~ void br_9600(void)//104us起始位元跟停止位元用 { _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); } //-------------------------------------------------------------------------- void serialarry_out (unsigned char select_code) { unsigned char i,j for(i=0; i<8; i ) { br_9600();//104us//啟始碼 for(j=0; j<8; j )//中間的8個bit { rs485_txd=(TX[i] & 0x01) ?1 :0; br_9600_2();//104us TX[i] >>= 1; }//for j br_9600();//104us//結束碼 }//for }
------
vincent
編輯記錄
vk8051 重新編輯於 2007-09-14 17:45:01, 註解 無‧
|
z9278170
一般會員 ![]() ![]() 發表:5 回覆:8 積分:2 註冊:2007-06-24 發送簡訊給我 |
|
aki
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
please visit the site:
http://focus.ti.com/mcu/docs/mcuprodcodeexamples.tsp?sectionId=96&tabId=1468 or if you can not find the site, please post your e-mail address, I send the source code to you. ===================引 用 z9278170 文 章=================== aki大大你好: 你說的Source code我找不太到咧 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |