音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

IO操作不好使,幫看看哪里毛病

作者:pp99sky 欄目:MCU技術
IO操作不好使,幫看看哪里毛病
圖片是710的P2.12,P2.13,P2.14,P2.15接245的圖,配置輸出GPIO_Config(GPIO2, 0xF000, GPIO_OUT_PP);
我采用定時中斷程序,使它們同時交替輸出高低電平,程序如下:
void T1TIMI_IRQHandler(void)
{    static vu8 i;
    if ( TIM_FlagStatus(TIM1, TIM_OCFA) )
    {
        TIM_FlagClear(TIM1, TIM_OCFA);
        TIM_AddOCMPCounterValue(TIM1, 9375);
        i++;
        if(i==30)
        {

        //GPIO_BitWrite(GPIO2,14,1);
        GPIO_BitWrite(GPIO2,15,1);
        //IO_BitWrite(GPIO2,12,1);
        GPIO_BitWrite(GPIO2,13,1);
        }
        
        if(i==60)
        {
        i=0;
        //GPIO_BitWrite(GPIO2,14,0);
        GPIO_BitWrite(GPIO2,15,0);
        //IO_BitWrite(GPIO2,12,0);
        GPIO_BitWrite(GPIO2,13,0);
        }
       }
}

情況是這樣,單獨操作這幾個IO中的任何一個,都工作正常,同時操作兩個及以上,如程序所示,都不好使。
圖上245的6,7,8,9腳輸出,當操作兩個以上腳同時輸出時,只有一個腳正常工作,其余的腳保持高電平或低電平不變。我這個上面我測的規(guī)律是,當同時操作兩個以上時,數(shù)字最大的那個腳正常輸出,我這幾個腳都輸出時,6,7,8腳保持以前的電平不變,也就是這么操作沒有動作,9腳正常。
如果把那些位操作函數(shù)改成字節(jié)操作的也是正常輸出,就是這個位操作函數(shù)用起來不行,是哪里用的不對?
請指點一二,謝謝!

* - 本貼最后修改時間:2007-1-11 14:38:33 修改者:pp99sky

2樓: >>參與討論
starm
不用庫函數(shù)直接為PORT賦值測試一下
同時設置4個位:

u16 wNewValue;

u16 wTemp = GPIO2->PD;

dwTemp &= 0x0FFF;
dwTemp |= (wNewValue << 12);
GPIO2->PD = dwTemp ;



* - 本貼最后修改時間:2007-1-11 14:37:56 修改者:starm

3樓: >>參與討論
pp99sky
字節(jié)操作是可以的啊,只是用那幾個位函數(shù)操作起來不行
 
4樓: >>參與討論
John_light
試著不在ISR中操作
在主程序中試一試,加延時。

5樓: >>參與討論
pp99sky
現(xiàn)在找到以下原因,但還有點疑問
GPIO_Config(GPIO2, 0xF000, GPIO_OUT_PP);
這個我沒打開,但是這個配置沒打開怎么會出現(xiàn)上面的操作呢?我又反復操作了幾次,是那里問題。

唉,搞了半天,沒搞明白哪里問題,結果還是自己腦子不怎么好使;前幾天也是,有個問題搞了好幾天沒搞定,后來有天晚上剛躺到床上想到了。身邊也無人可問,也只有上網討教討教了,希望能得到點靈感。其實剛剛就是看到樓上的一句話,我才看到我那個沒打開的。

* - 本貼最后修改時間:2007-1-11 16:53:46 修改者:pp99sky

6樓: >>參與討論
ST_ARM
to pp99sky
你打開GPIO_Config(GPIO2, 0xF000, GPIO_OUT_PP);操作是否正常?
如果你沒有打開上面的設置,GPIO2是上電默認狀態(tài):input pull up/pull down,此時GPIO2的輸出呈現(xiàn)weak Push-Pull,GPIO2的輸出是pull up還是pull down是根據(jù)GPIO2的PD口決定的,例如
GPIO_BitWrite(GPIO2,14,1);你設定14腳呈現(xiàn)pull up,此時14腳是高電平,15腳是低電平。
當你運行GPIO_BitWrite(GPIO2,15,1);時,軟件代碼是先讀取PD口的值,然后與0x8000或一下,再寫入PD口。

。!問題的關鍵是第一次讀取PD的數(shù)據(jù)是來自Input口,讀取的數(shù)據(jù)不是OUTPUT口的數(shù)據(jù)。所以出現(xiàn)你所看到的現(xiàn)象。

7樓: >>參與討論
pp99sky
好的,謝謝了,打開后正常操作了。
 
參與討論
昵稱:
討論內容:
 
 
相關帖子
哪有STR710F Flash Programmer 下載?
STR91X:LQFP128封裝的管腳是否兼容?
STR710的IAP的DRIVER!
請問在深圳有誰家STR912的供貨/支持好,請聯(lián)系我。
STR75X的開發(fā)問題
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號