国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      沈陽芯碩科技有限公司

      免費會員·4年
      您現(xiàn)在的位置: 沈陽芯碩科技有限公司>>芯片>> 華大MCU端口使用時的競爭-冒險現(xiàn)象
      華大MCU端口使用時的競爭-冒險現(xiàn)象
      參考價: 3000
      訂貨量: 1
      具體成交價以合同協(xié)議為準
      • 產品型號
      • 其他品牌 品牌
      • 代理商 廠商性質
      • 沈陽市 所在地

      訪問次數(shù):425更新時間:2021-09-17 11:20:13

      聯(lián)系我們時請說明是智能制造網上看到的信息,謝謝!
      免費會員·4年
      聯(lián)人:
      沈陽芯碩科

      掃一掃訪問手機商鋪

      產品簡介
      顏色 黑色
      在使用華大單片機時對GPIO操作是最基礎的操作,即使這種操作如果不注意還是會掉到坑里去。
      產品介紹

      在使用華大單片機時對GPIO操作是最基礎的操作,即使這種操作如果不注意還是會掉到坑里去。
         例如:使用同一組GPIO端口中的兩個引腳(PA00PA01)做輸出,PA00在主循環(huán)中改變輸出狀態(tài),PA01通過中斷方式改變輸出狀態(tài)。正常的情況應該是PA00只在主循環(huán)中改變輸出狀態(tài),而PA01只會在中斷發(fā)生時改變輸出狀態(tài)。但是,隨著程序運行時間的加長或者在主循環(huán)中提高PA00輸出的頻率,會發(fā)現(xiàn)本應該在中斷中完成狀態(tài)改變的PA01,個別時候狀態(tài)會不發(fā)生改變。而在中斷服務程序中設置斷點,進行debug發(fā)現(xiàn)中斷可以正常進入,也能正常改變PA01的輸出狀態(tài)。要想分析造成這個情況的原因可以從*提供的DDL庫入手來分析。華大單片機M0+系列芯片在對GPIO端口輸出電平操作時,DDL庫提供了如下兩種方法:


      方法1

      <p><font face="微軟雅黑" size="3">/*****************************************************************************

       ** brief GPIO IO輸出值寫入

       **

       ** param [in]  enPort          IO Port

       ** param [in]  enPin           IO Pin

       ** param [out] bVal            輸出值

       **

       ** retval en_result_t           Ok          設置成功

       **                                         其他值    設置失敗 ******************************************************************************/

      en_result_t Gpio_WriteOutputIO(en_gpio_port_t enPort, en_gpio_pin_t enPin, boolean_t bVal)

      {

          SetBit(((uint32_t)&M0P_GPIO->PAOUT + enPort), enPin, bVal);</font></p><p><font face="微軟雅黑" size="3">    return Ok;

      }</font></p>

      方法2

      <p><font face="微軟雅黑" size="3">/*******************************************************************************

       ** brief GPIO IO設置

       **

       ** param [in]  enPort          IO Port

       ** param [in]  enPin           IO Pin

       **

       ** retval en_result_t           Ok        設置成功

       **                                        其他值   設置失敗 ******************************************************************************/

      en_result_t Gpio_SetIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)

      {

          SetBit(((uint32_t)&M0P_GPIO->PABSET + enPort), enPin, TRUE);</font></p><p><font face="微軟雅黑" size="3">    return Ok;

      }</font></p><p><font face="微軟雅黑" size="3">

      </font></p><p><font face="微軟雅黑" size="3">/******************************************************************************

       ** brief GPIO IO清零

       **

       ** param [in]  enPort          IO Port

       ** param [in]  enPin           IO Pin

       **

       ** retval en_result_t           Ok        設置成功

       **                                         其他值  設置失敗 ******************************************************************************/

      en_result_t Gpio_ClrIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)

      {

          SetBit(((uint32_t)&M0P_GPIO->PABCLR + enPort), enPin, TRUE);</font></p><p><font face="微軟雅黑" size="3">    return Ok;

      }</font></p>

       

      方法1是對整個PxOUT寄存器進行的操作,查看華大單片機用戶手冊關于此寄存器的說明; PxOUT寄存器對應位為1時,對應的引腳輸出高電平,反之輸出低電平。
         方法2是通過置位寄存器引腳對應位的置1完成引腳輸出高電平的操作,寄存器說明。

      通過清零寄存器引腳對應位的置1完成引腳輸出低電平的操作,寄存器說明

      如圖:

      140827gc5uzut5xcdyx2m9.png

      上述輸出不正常的現(xiàn)象是因為使用了方法1進行的操作。在主循環(huán)中對PA00輸出狀態(tài)的改變通過PAOUT寄存器來完成,假如PORTA所有引腳都為低電平時,讓PA00輸出高電平,方法1的操作是把0X0001寫入到PAOUT寄存器就可以實現(xiàn)。在ARM的匯編指令中要把0X0001寫入到PAOUT必須借助于通用寄存器 (r0~r7)來實現(xiàn)。當CPU剛完成0X0001移入到通用寄存器時,中斷發(fā)生,CPU會把通用寄存器保存起來,然后響應中斷,在中斷中PA01輸出高電平PAOUT值為0X0002,之后退出中斷。退出中斷后,CPU會恢復中斷之前通用寄存器的值(0X0001),再繼續(xù)把通用寄存器的值存入到PAOUT。這時PAOUT的值是0X0001,只有PA00輸出高電平,而PA01沒有輸出高電平。這種現(xiàn)象就是華大MCU端口使用時的競爭-冒險現(xiàn)象。
         在使用華大芯片的時候不希望這競爭-冒險現(xiàn)象出現(xiàn),通過方法2的操作*可以避免此現(xiàn)象的出現(xiàn)。因為方法2是對寄存器的位進行操作,每次操作的時候只有對應的位進行置位或清零,其它位值為0的時候不影響輸出的結果 。
         建議大家在開發(fā)的時候對GPIO端口輸出操作時,使用方法2的方式來操作。




      會員登錄

      ×

      請輸入賬號

      請輸入密碼

      =

      請輸驗證碼

      收藏該商鋪

      X
      該信息已收藏!
      標簽:
      保存成功

      (空格分隔,最多3個,單個標簽最多10個字符)

      常用:

      提示

      X
      您的留言已提交成功!我們將在第一時間回復您~
      產品對比 二維碼

      掃一掃訪問手機商鋪

      對比框

      在線留言