研究ノート - シリアル・コンフィギュレーション

1  / * *********シリアル初期化関数********* * / 
2  // 結合:ボー
。3  ボイドMy_USART1_Init(U32に結合)
 。4  {
 5。 // 構造の定義変数
6  GPIO_InitTypeDef GPIO_InitStructure;
 7  USART_InitTypeDef USART_InitStructure;
 8  NVIC_InitTypeDef NVIC_InitStructure;
 9 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA、ENABLE); // クロックGPIOAイネーブル
10 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1、ENABLE); //はUSART1クロックをイネーブルには(シリアル1および6は、ハングでありますAPB2オンなど)
 。11  // 対応するピンは、多重化されマッピングされた
12 (GPIOA、GPIO_PinSource9、GPIO_AF_USART1有する)GPIO_PinAFConfig;
 13であり ;(GPIOA、GPIO_PinSource10、GPIO_AF_USART1有する)GPIO_PinAFConfig
 14  // GPIOポートモード
15 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; // GPIOA10とGPIOA9 
16 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;              // 複合機能を持つ
17。 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        // 速度50MHzの
18である GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;           // プッシュプル出力多重化
。19 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;             // プル
20(GPIOA、&GPIO_InitStructure有する)GPIO_Init;                     // 初期化PA9、PA10
 21は、 // ポートの初期化パラメータ
22で結合= USART_InitStructure.USART_BaudRate;                            //は、一般的に9600に設定され、
23である USART_InitStructure.USART_WordLength = USART_WordLength_8b;          // 語長は8ビットである
24 USART_InitStructure。 = USART_StopBits_1 USART_StopBits;               // ストップビット
25 USART_InitStructure.USART_Parity = USART_Parity_No;                  // パリティビットなかっ
26で USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // ハードウェアフロー制御なし
27= USART_Mode_Rx USART_InitStructure.USART_Mode | USART_Mode_Tx;    // トランシーバ
28 USART_Init(USART1、&USART_InitStructure);                            // シリアルポートを初期化する1。
29  
30 USART_Cmd(USART1を、ENABLE);                                            // シリアルポートをイネーブル1。
31である USART_ClearFlag(USART1、USART_FLAG_TC);                              // クリアデータ伝送識別子の完了
32 ; USART_ITConfig(USART1、USART_IT_RXNE、ENABLE)// ターンは、割り込みが(典型的には、PCとの間の通信を可能にし、この缶のみライン)が生成されるシフトレジスタのデータが受け付けた場合に、受信
 33  //が必要に応じて割り込みをイネーブル初期NVIC 
34 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;             // USART1割り込み設定
35 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3 ;      // 。先取り優先順位3 
36 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3 ;                // 。レスポンス優先順位3 
37 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                  // IRQが通路イネーブル
38が NVIC_Init(&NVIC_InitStructure);                                   // 指定されましたVICパラメータ初期化レジスタ、
39  }
 40  
41である / * *********割り込みハンドラ********* * / 
42である ボイド USART1_IRQHandler(ボイド// ポート1つの割り込みサービスルーチン
43 {
 44は、   IF(!USART_GetITStatus(USARTy、USART_IT_RXNE)がリセット=)// データを登録した場合
45    {
 46  / * からバイトを読み出すレジスタ受信* / 
47    RxBuffer1 [RxCounter1 ++] = USART_ReceiveData(USART1)を、
 48    }
 49    IF(!USART_GetITStatus(USARTy、USART_IT_TXEが)= RESET)の
 50    {
 51は    USART_SendData(USARTy、TxBuffer1 [TxCounter1 ++ ]);
 52である   } 
 53れます }

主な機能:

1  INTメイン(ボイド2  {
 3。      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 優先パケット割込みシステム設定2 
。4      My_USART1_Init();
 5      ながら(1 。6 }

 

おすすめ

転載: www.cnblogs.com/renhao1024/p/12011454.html