2019年9月5月12日(木曜日)(STM32)

 

タイマー

1.PWM

   

 

 

 

  マイクロプロセッサのパルス幅変調PWM(Pulse Width Modulation:パルス幅変調)出力を制御するためにデジタルである(高および低)アナログ回路等、技術、広く測定に使用され、通信及び電力制御は非常に有効です

    デューティ・サイクル - 指定された時間内に、アクティブレベルの割合

2.stm32汎用タイマは、持っていたPWM機能を

    GPIOポートと汎用タイマは、タイマカウンタの変更時刻を比較することにより、GPIOであるPWM波形を、PWM波のタイマ期間の周期を出力介して、PWM波のレベルが決定され、取り付けられてもよいです

    期間(タイマ期間)により決定PWM波波形の極性(コンフィギュレーション)、デューティ比(比較カウンタ)

    PWM波がGPIO出力多重化機能を所属GPIOを介して出力され、あなたは(選択機能を多重に対応)GPIOの多重化およびマッピングを設定する必要があります

3.GPIOの機能の再利用

    リファレンスマニュアルは、レジスタ設定多重化機能を介して、16を持つすべてのGPIO多重関数であるが、実際には各チップIOポート多重化機能は、模式図(特にチップマニュアル)を照会するために、それほどではありませんすべての代替機能は、クエリに応じてコンフィギュレーションレジスタに結果IOポート

4.PWMタイマプログラミング方法(LEDL呼吸ランプ、例えば

1)タイマーを開始し14GPIOFクロックを

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14、ENABLE)。

    ....

2)初期化PF9を多重出力として

    GPIO_Init();

    //GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //多重化モード

3PF9のに多重化およびマッピングTIM14

    GPIO_PinAFConfig(GPIOF、GPIO_PinSource9、GPIO_AF_TIM14)。

4)初期化タイマー

    TIM_TimeBaseInit();

5)タイマ初期化パラメータを比較

    空TIM_OC1Init(TIM_TypeDef * TIMx、TIM_OCInitTypeDef * TIM_OCInitStruct)

    パラメータ:

        TIMx - これはタイマー

        TIM_OCInitStruct - 初期化構造

  構造体のtypedef
{
  TIM_OCMode uint16_t ;! / * < 
出力モードPWM1 / PWM2(極性、共に波形タイマカウントを高次モードを決定します* /)

  uint16_t TIM_OutputState ;! / * < 出力イネーブル状態TIM_OutputState_Enable @ref TIM_Output_Compare_Stateの* /

  uint32_t TIM_Pulse ;! / * < 初期カウンタ値の比較は0x0000と0xFFFFの間* /

  uint16_t TIM_OCPolarity; !/ * < 极性电平TIM_OCPolarity_Low @ref TIM_Output_Compare_Polarity * /
} TIM_OCInitTypeDef。

6)プリレジスタを有効にします

    TIM_OC1PreloadConfig(TIM14、TIM_OCPreload_Enable)。

7)オートリロードイネーブルビットを有効にします

    TIM_ARRPreloadConfig(TIM14、ENABLE)。

8)タイマを有効にします

    TIM_Cmd(...);


9)比較値レジスタ(CCRx)、達成可能なデューティサイクル調整

    無効TIM_SetCompare1(TIM_TypeDef * TIMx、Compare1のuint32_t)

    パラメータ:

        TIMx - これはタイマー

        Compare1 - 新しい比較値

二つシリアルプログラミング

1.コミュニケーションの基本的な考え方

1)シリアル通信とパラレル通信

同時にマルチビットバイナリデータを送信する複数のデータ線を用いてパラレル通信

 

 

 

 

データビット線(ビット)の第1の送信を使用して、シリアル通信

  

 

 

 

2)通信方式

    -----一方向に単純データ転送のみ(一方向送信)

    ----両方向ではなく、同時に、半二重データ伝送(時点一方向のみの伝送)

    全二重----両方向で同一の時刻データ送信時

    

 

 

 

3)データフレームプロトコル

    

 

 

 

4)シリアルクロスコネクト

 

 

 

 

5)シリアルボーレート(BPS)は、伝送レートを表す------ビットの数は、単位時間当たりの送信

2.stm32シリアル

    シリアル、全二重

    TXD(送信)RXD(受信):2つのデータラインがあります。

1)概略

 

 

 

 

 

 

    結局CPU PA9 PA10に接続されています

2)表示STM32のチップマニュアル

特徴:

     

 

 

 

 

 

 

 

 

3.シリアル・プログラミング方法は、構成します

1)有効GPIOA、シリアルポート1クロック

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1、ENABLE)。

    ...

2)初期化GPIOは複素関数であります

    GPIO_Init(...)

3PA9 PA10はシリアル機能をマッピングし

    GPIO_PinAFConfig(GPIOA、GPIO_PinSource9、.......)。

    GPIO_PinAFConfig(GPIOA、GPIO_PinSource10、.......)。

4    

    空USART_Init(USART_TypeDef * USARTx、USART_InitTypeDef * USART_InitStruct)

    パラメータ:

        USARTx - COMポート

        USART_InitStruct - 初期化構造

  構造体のtypedef
{
  USART_BaudRateのuint32_t ;! / * <
ボー115200 * /

  uint16_t USART_WordLength ;! / * < データビット長USART_Word_Length @ref USART_WordLength_8b * /

  uint16_t USART_StopBits ;! / * < ストップビットの数  USART_StopBits_1 @ref USART_Stop_Bits * /

  uint16_t USART_Parity;              /*!< 校验方式 USART_Parity_No @ref USART_Parity*/
 
  uint16_t USART_Mode;                /*!< 
传输方式 USART_Mode_Rx|USART_Mode_Tx @ref USART_Mode */

  USART_HardwareFlowControl uint16_t; / * <! 硬件流控制USART_HardwareFlowControl_None @ref USART_Hardware_Flow_Control * /
} USART_InitTypeDef。

5)あなたはシリアルポート割り込み、割り込みソースの初期化して使用する必要がある場合はNVICを

     USART_ITConfig(USART1、USART_IT_RXNE、ENABLE);; //割り込みを受け取ります

     NVIC_Init(...);

6)シリアルポートが有効になって

    USART_Cmd(USART1、ENABLE)。


 7)送信及びデータ受信----------(ポーリング割り込みDMA)を

ポーリング送信:

空usart1_putc(U8データ)

{

    //データ送信が完了しているかどうかを待ちます

     while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);

    // 发送数据

    USART_SendData(USART1,data);

}

おすすめ

転載: www.cnblogs.com/zjlbk/p/11529562.html