。タイマー
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)タイマーを開始し14とGPIOFクロックを
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14、ENABLE)。
....
(2)初期化PF9を多重出力として
GPIO_Init();
//GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //多重化モード
(3)PF9のに多重化およびマッピング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 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 * / |
(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(...)
(3)PA9 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 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*/ USART_HardwareFlowControl uint16_t; / * <! 硬件流控制USART_HardwareFlowControl_None @ref USART_Hardware_Flow_Control * / |
(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); } |