看了小馬哥的多功能調(diào)試工具真是羨慕啊,于是也做了個高速USBhub托了個xlink, 用stm32實現(xiàn) USB轉(zhuǎn)串口TTL/串口232/串口485(通過跳線來實現(xiàn))/NRF24L01/紅外,同時支持輸出一路PWM輸出。反正也用不到Altra的調(diào)試,于是就將另兩路USB接了兩個USB座,方便接U盤。測試了下USB轉(zhuǎn)485,(因為485需要控制換向端),發(fā)現(xiàn)效果比想象的要好啊!與其說這是個調(diào)試工具,到不如說是個簡易的stm32的開發(fā)板,接兩條杜邦線就可以來調(diào)試?yán)病?/p>
USB轉(zhuǎn)485調(diào)試截圖:
調(diào)試日志:
2012-10-25:
實現(xiàn)USB obLink調(diào)試以及USB轉(zhuǎn)串口。這基本上都是以前就調(diào)好過了的。
但是調(diào)試的時候發(fā)現(xiàn)oblink在下載的時候,當(dāng)在Keil中設(shè)置速度最大時不穩(wěn)定,經(jīng)常下載失敗,但是之前做的單獨(dú)的oblink就沒這問題,懷疑是GL850A的問題,看了下手冊才知道其REF管腳要接680歐的電阻,而自己想當(dāng)然的焊了1.5K的電阻,換后問題解決。
2012-10-26:
開始調(diào)試NRF24L01,比較順利,照著例程很容易就給移植過來了,但是突然發(fā)現(xiàn),發(fā)送和接收函數(shù)中,發(fā)送的就是固定的32字節(jié),而接收的也是固定的32字節(jié),于是就想修改成適合程序的風(fēng)格:send(u8 *buf,u16 len),接收至少要知道接收到了幾個字符!于是看了下NRF24L01的寄存器,剛好有這個寄存器,讀取便可知道里面有多少數(shù)據(jù),于是跟著修改了發(fā)送的函數(shù),將發(fā)送的數(shù)據(jù)個數(shù)修改成任意設(shè)置的,結(jié)果發(fā)現(xiàn)接收那塊死活接收不到數(shù)據(jù)了,于是增加了發(fā)送的個數(shù)到32字節(jié),終于收到數(shù)據(jù)了。于是設(shè)置了下接收FIFO的大小,結(jié)果發(fā)現(xiàn),發(fā)送的數(shù)據(jù)只有跟接收FIFO一樣的時候,接收端才能收到數(shù)據(jù)!真是變態(tài)?。≈辽僖袀€超時吧??于是改了就32字節(jié)了,發(fā)送的數(shù)據(jù)如果超過32字節(jié),就拆包發(fā),如果少于32字節(jié),就加個0做結(jié)尾符,多發(fā)幾個無用的數(shù)據(jù),接收端就像處理字符串那樣去處理吧。
2012-10-28:
開始調(diào)紅外。當(dāng)初做原理的時候,沒想那么多,直接扯了條線接到一個IO上去了,結(jié)果看了下原子的程序,用的是定時器的輸入捕獲來做的,于是想改成收到中斷后開定時器的方式來解決問題。剛好找到了他之前的一個版本的程序,修改了下居然OK了。而且效果也很不錯,用家里的DVD遙控器試了下,也沒問題。OK,暫告一段落。