<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式ARM Linux步進(jìn)電機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)

          基于嵌入式ARM Linux步進(jìn)電機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)

          作者: 時(shí)間:2010-09-28 來(lái)源:網(wǎng)絡(luò) 收藏

          要用操作所用到的IO口,就要設(shè)置他們所用到的寄存器,我們需要調(diào)用一些現(xiàn)成的函數(shù)或者宏,比如:
          /*每個(gè)port有16個(gè)引腳,而每個(gè)引腳由兩位來(lái)配置,所以你看到32×N。 32表示一個(gè)port的配置寄存器,而N代表是第幾個(gè)端口。而這里的offset表示的是第幾個(gè)引腳。*/

          本文引用地址:http://www.ex-cimer.com/article/151484.htm

          5e.JPG

          S3C2440開(kāi)發(fā)板中GPIO的許多引腳是和地址線、數(shù)據(jù)線、串口線等引腳復(fù)用的。所以我們必須對(duì)GPIO進(jìn)行重新定義和配置。一般來(lái)說(shuō),寫驅(qū)動(dòng)可以在內(nèi)核中找相近的,以它為模板進(jìn)行開(kāi)發(fā),有時(shí)也要從零開(kāi)始,這次作者在內(nèi)核-2.6.13-qq2440\kernel2.6.13\drivers\char中的qq2440 led.c進(jìn)行修改。
          5f.JPG

          最后定義了file_operations和各種API函數(shù),配置了init和exit函數(shù)以及module_exit和module_init。
          驅(qū)動(dòng)開(kāi)發(fā)完后,要進(jìn)行測(cè)試。把編寫好的在PC機(jī)上進(jìn)行交叉編譯。然后用命令#insmod stepper.ko加載模塊到內(nèi)核中,通過(guò)命令#rmmod stepper.ko可以卸載模塊。用mknod/dev/stepper 1000 0建立與相應(yīng)的設(shè)備節(jié)點(diǎn)。編寫相應(yīng)的應(yīng)用程序。在應(yīng)用程序中打開(kāi)的設(shè)備文件,通過(guò)調(diào)用ioctl(fd,1dir,O),運(yùn)行應(yīng)用程序,查看的轉(zhuǎn)向。

          3 結(jié)論
          本文在S3C2440開(kāi)發(fā)板下實(shí)現(xiàn)了的控制。給出了簡(jiǎn)單的驅(qū)動(dòng)程序,實(shí)驗(yàn)結(jié)果表明驅(qū)動(dòng)運(yùn)行正常、穩(wěn)定。但對(duì)于實(shí)現(xiàn)傳能激光雕刻的圖形及灰度雕刻,還有待于進(jìn)一步的完善。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
          雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();