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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 體感遙控器設(shè)計(jì)遭遇瓶頸?用STM32 MCU造!

          體感遙控器設(shè)計(jì)遭遇瓶頸?用STM32 MCU造!

          作者: 時(shí)間:2013-12-21 來源:網(wǎng)絡(luò) 收藏
          據(jù)包發(fā)送出去;App_TaskData任務(wù)在每發(fā)送一次指令數(shù)據(jù)包后,通過nRF24L01無線模塊接收機(jī)器人本體回傳的運(yùn)動(dòng)狀態(tài)信息包;App_TaskLCD任務(wù)實(shí)現(xiàn)運(yùn)動(dòng)指令、機(jī)器人運(yùn)動(dòng)狀態(tài)、電池電量、實(shí)時(shí)時(shí)鐘在12864液晶顯示模塊上的顯示;App_TaskLED_B任務(wù)通過LED指示遙控器上的主控芯片與iNEMO慣性導(dǎo)航模塊、遙控器與機(jī)器人是否通信正常,當(dāng)電池電量過低時(shí),通過蜂鳴器進(jìn)行報(bào)警;App_TaskClock任務(wù)得到DS1302的實(shí)時(shí)時(shí)鐘,通過消息郵箱App_LCDClockMbox發(fā)送給App_TaskLCD任務(wù)予以實(shí)時(shí)顯示。

            3.2 任務(wù)間通信設(shè)計(jì)

            任務(wù)和中斷服務(wù)子程序可以通過事件控制塊與其他任務(wù)進(jìn)行通信,常用的通信方式有信號量、郵箱和消息隊(duì)列,同時(shí),通過事件標(biāo)志實(shí)現(xiàn)任務(wù)與事件之間的同步。本操作系統(tǒng)共創(chuàng)建了8個(gè)消息郵箱和1個(gè)事件標(biāo)志:

            OS_EVENT *App_AHRSMbox

            OS_EVENT *App_CommandMbox

            OS_EVENT *App_DataMbox

            OS_EVENT *App_ADMbox

            OS_EVENT *App_LCDCmdMbox

            OS_EVENT *App_LCDDataMbox

            OS_EVENT *App_LCDADMbox

            OS_EVENT *App_LCDClockMbox

            OS_FLAG_GRP *App_GreenLEDFlag

            其中,App_GreenLEDFlag包括3個(gè)標(biāo)志位:

            #define Flg_GreenLED 0x0001

            #define Flg-BlueLED 0x0002

            #define Flg_Buzzer 0x0004


            3.3 軟件系統(tǒng)流程圖設(shè)計(jì)

            軟件系統(tǒng)流程圖如圖4所示。經(jīng)上電初始化后,首先采集電池電壓,然后通過郵箱*App_ADMbox將采集得到的電量值發(fā)送給 12864液晶顯示模塊進(jìn)行顯示,若電量過低,則使標(biāo)志位Flg_Buzzer置位,即通過蜂鳴器進(jìn)行報(bào)警。并且,通過DMA把iNEMO慣性導(dǎo)航模塊的數(shù)據(jù)接收到USART1,判斷校驗(yàn)位是否正確,若不正確則重新配置DMA,重新接收數(shù)據(jù);若正確則將接收到的數(shù)據(jù)轉(zhuǎn)化為控制指令,通過nRF24L01無線模塊發(fā)送給機(jī)器人。同時(shí)通過郵箱*App-LCDCmdMbox將指令發(fā)送給App_TaskLCD任務(wù),在12864液晶顯示模塊顯示當(dāng)前發(fā)送的指令,并通過置位Flg_GreenLED點(diǎn)亮相應(yīng)LED,以表示F103C8T6與iNEMO模塊通信正常;機(jī)器人本體接收到指令后,會(huì)給遙控器返回?cái)?shù)據(jù)包,如果遙控器接收的數(shù)據(jù)錯(cuò)誤標(biāo)志位沒有置位,則說明遙控器與機(jī)器人本體通信正常,通過郵箱*App_LCDDataMbox將機(jī)器人的狀態(tài)信息發(fā)送給App_Tas kLCD任務(wù),在12864液晶顯示模塊上顯示機(jī)器人本體運(yùn)動(dòng)狀態(tài),同時(shí)通過置位Flg_BlueLED點(diǎn)亮相應(yīng)LED,以表示遙控器與機(jī)器人本體通信正常。App_TaskClock任務(wù)通過郵箱*App_LCDClockMbox向App_TaskLCD任務(wù)發(fā)送當(dāng)前時(shí)間信息,并予以顯示。

          體感遙控器設(shè)計(jì)遭遇瓶頸?用STM32 MCU造!  

            軟件系統(tǒng)開發(fā)環(huán)境為IAR EWARM5.4,μC/OS-II版本為V2.86,F103C8T6的調(diào)試工具為J-Link仿真器,F103C8T6的固件庫版本為V2.0.3。

          紅外遙控器相關(guān)文章:紅外遙控器原理

          萬能遙控器相關(guān)文章:萬能遙控器代碼


          蜂鳴器相關(guān)文章:蜂鳴器原理


          關(guān)鍵詞: 體感遙控器 STM32 MCU

          評論


          相關(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); })();