STM 32学習ノート4——IO読み出し操作


このブログはSTM 32勉强がばらばらだった记录です。

  • STM 32出力ポートレベル
  • をどのように読み取るか.
  • 参照リンク
  • STM 32出力ポートレベルの読み出し方法

  • ライブラリ関数操作、PC 13を例に:GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13);//読み出し入力ポートPC 13値GPIO_ReadOutputDataBit (GPIOC,GPIO_Pin_13);//読み出し入力ポートPC 13の値の2つの読み出し関数の動作の違いは、読み出しレジスタが異なる点であり、それぞれGPIOx->IDR GPIOx->ODR
  • である.
  • レジスタ動作
  • 単一ポートがハイレベルかどうかを判断する:
       if(GPIOC->IDR& GPIO_IDR_IDR13)
       {
      	 ;
       }
    
    PC 13ポートがハイレベルである場合、if条件は真である.PC 13ポートが低レベルの場合、if条件は偽である.
  • 単一ポートがローレベルであるか否かを判定する:
     if((~GPIOC->IDR)& GPIO_IDR_IDR13)
     {
     	 ;
     }
    
  • .
    解析:まず&GPIO_IDR_IDRは、PC 13以外の他のPCポートを遮断する.PC 13がハイレベルである場合、GPIO-〉IDRのbit 2は‘1’であり、逆取り後は‘0’であるため、条件は偽である.PC 13が低レベルである場合、GPIO-〉IDRのbit 2は「0」であり、逆取り後は「1」であるため、条件は真である.この方法により、PC 13またはPC 14(さらに多くのPEポート)が低レベル(例えば、キーが押下される)であるか否かを同時に判断することができる
    ③複数ポートにローレベルがあるかどうかを判断する:
    if((~GPIOC->IDR)& (GPIO_IDR_IDR13 | GPIO_IDR_IDR14))
    {
     ;
    }
    

    解析:まず、PC 13およびPC 14以外の他のPCポートを&(GPIO_IDR 13|GPIO_IDR 14)によって遮断する.PC 13または(および)PC 14が低レベルである場合、GPIO-〉IDRのbit 13または(および)bit 14は「0」であり、逆取り後は「1」であるため、条件は真である.
    注意:この方法はstm 32 IOポートの状態を判断するための最良の方法ではなく、最も直接的な方法ではありませんが、ビット操作を理解するのに役立ちます.

    リファレンスリンク


    https://blog.csdn.net/dddxxxx/article/details/77374815 https://blog.csdn.net/dzihui/article/details/46514387 https://blog.csdn.net/qq_37286676/article/details/86517241