色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > stm32快速學習5——串口中斷接收

          stm32快速學習5——串口中斷接收

          作者: 時間:2016-11-17 來源:網絡 收藏
          串口自發(fā)自收

          設定串口時鐘

          本文引用地址:http://cafeforensic.com/article/201611/315444.htm

          設定引腳功能

          中斷優(yōu)先級

          設定串口

          Main文件

          #include"stm32f10x.h"

          voidRCC_Configuration(void);

          voidGPIO_Configuration(void);

          voidUSART_Configuration(void);

          voidNVIC_Configuration(void);

          intmain(void)

          {

          RCC_Configuration();

          GPIO_Configuration();

          NVIC_Configuration();

          USART_Configuration();

          while(1);

          }

          voidRCC_Configuration(void)

          {

          RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);

          }

          voidGPIO_Configuration(void)

          {

          GPIO_InitTypeDefGPIO_InitStructure;

          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;

          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

          GPIO_Init(GPIOA,&GPIO_InitStructure);

          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;

          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

          GPIO_Init(GPIOA,&GPIO_InitStructure);

          }

          voidUSART_Configuration(void)

          {

          USART_InitTypeDefUSART_InitStructure;

          USART_InitStructure.USART_BaudRate=115200;

          USART_InitStructure.USART_WordLength=USART_WordLength_8b;

          USART_InitStructure.USART_StopBits=USART_StopBits_1;

          USART_InitStructure.USART_Parity=USART_Parity_No;

          USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

          USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;

          USART_Init(USART1,&USART_InitStructure);

          USART_Cmd(USART1,ENABLE);

          USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);/*接收中斷使能*/

          }

          voidNVIC_Configuration(void)

          {

          NVIC_InitTypeDefNVIC_InitStructure;

          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

          NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;/*3.4的庫不是使用USART1_IRQChannel,看stm32f10x.h吧*/

          NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

          NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

          NVIC_Init(&NVIC_InitStructure);

          }

          Stm32f10x_it.c加入

          voidUSART1_IRQHandler(void)

          {

          unsignedinti;

          if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)

          {

          i=USART_ReceiveData(USART1);

          USART_SendData(USART1,i);

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

          }

          if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)

          {

          /*清楚接收中斷標志*/

          USART_ClearITPendingBit(USART1,USART_IT_RXNE);

          }

          }



          關鍵詞: stm32串口中斷接

          評論


          技術專區(qū)

          關閉