全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5429
推到 Plurk!
推到 Facebook!

關於gpio實現uart

缺席
z9278170
一般會員


發表:5
回覆:8
積分:2
註冊:2007-06-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-12 21:06:16 IP:140.118.xxx.xxx 訂閱
我的硬體設備是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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-12 23:29:08 IP:218.166.xxx.xxx 訂閱
有幾個方法:
(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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-14 17:38:39 IP:220.130.xxx.xxx 訂閱
有一個方法,簡單但是比較笨~給你參考~
你先寫一個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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-17 12:52:03 IP:140.118.xxx.xxx 訂閱
aki大大你好:
你說的Source code我找不太到咧
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-17 12:56:26 IP:61.66.xxx.xxx 訂閱
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我找不太到咧
編輯記錄
aki 重新編輯於 2007-09-17 20:30:08, 註解 無‧
aki 重新編輯於 2007-09-17 20:30:18, 註解 無‧
系統時間:2024-09-10 12:04:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!