标题: STM32F030 UART 配置 [打印本页]

作者: wanghanshao    时间: 2019-5-27 12:30
标题: STM32F030 UART 配置
  1. /* USART3?ê??ˉ */
  2. void USART1_Init(uint16_t baud)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.         USART_InitTypeDef USART_InitStructure;
  6.         NVIC_InitTypeDef NVIC_InitStruct;
  7.       
  8.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);  
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  10.         /* USART1μ????ú???? */
  11.         GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
  12.         GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);

  13.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  14.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  15.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  16.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  17.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  18.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  19.       

  20.         /* USART1μ??ù±????? */
  21.         USART_InitStructure.USART_BaudRate = baud;              
  22.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  23.         USART_InitStructure.USART_StopBits = USART_StopBits_1;
  24.         USART_InitStructure.USART_Parity = USART_Parity_No;
  25.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  26.         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

  27.         USART_Init(USART1, &USART_InitStructure);               
  28.         USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);           
  29.         
  30.         USART_Cmd(USART1, ENABLE);                             
  31.         
  32.       
  33.         /* USART1μ?NVIC?D?????? */
  34.         NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
  35.         NVIC_InitStruct.NVIC_IRQChannelPriority = 0x03;
  36.         NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
  37.         NVIC_Init(&NVIC_InitStruct);
  38.                               
  39. }


  40. void USART1_IRQHandler(void)
  41. {
  42.         //////////////////////////////ó?óúGPS////////////////////////////               

  43.         u8 Res;
  44.         if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
  45.                 {
  46.                 Res =USART_ReceiveData(USART1);        
  47.                 USART1_RX_BUF[point2] = Res;
  48.                 point2++;
  49.                 }
  50. }


复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1