求一个gd32f103vct6 串口4初始化代码

[复制链接]
800|0
 楼主| 陈工123 发表于 2019-7-16 17:33 | 显示全部楼层 |阅读模式

  1. void Uart4_Init(uint32_t baud)
  2. {
  3.         GPIO_InitPara                 GPIO_InitStructure;
  4.         USART_InitPara                 USART_InitStructure;
  5.         NVIC_InitPara                 NVIC_InitStructure;
  6.        
  7.         RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOC | RCC_APB2PERIPH_AF, ENABLE);
  8.         RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_UART4, ENABLE);

  9.         USART_DeInit(UART4);
  10.         /**/
  11.         GPIO_InitStructure.GPIO_Pin = GPIO_PIN_12;
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP;
  14.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  15.         GPIO_SetBits(GPIOC, GPIO_PIN_12);
  16.         //进入设置状态
  17.        
  18.          //USART4_TX   PC.10
  19.         GPIO_InitStructure.GPIO_Pin = GPIO_PIN_10;
  20.         GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
  21.         GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP;
  22.         GPIO_Init(GPIOC, &GPIO_InitStructure);

  23.         //USART4_RX          PC.11
  24.         GPIO_InitStructure.GPIO_Pin = GPIO_PIN_11;
  25.         GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
  26.         GPIO_InitStructure.GPIO_Mode = GPIO_MODE_IPU;
  27.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  28.        
  29.         //Usart4 NVIC
  30.         NVIC_InitStructure.NVIC_IRQ = UART4_IRQn;                //UART4_IRQHandler
  31.         NVIC_InitStructure.NVIC_IRQPreemptPriority=3;        //least 3
  32.         NVIC_InitStructure.NVIC_IRQSubPriority = 3;                //least 3
  33.         NVIC_InitStructure.NVIC_IRQEnable = ENABLE;                       
  34.         NVIC_Init(&NVIC_InitStructure);       

  35.    
  36.         USART_InitStructure.USART_BRR = baud;
  37.         USART_InitStructure.USART_WL = USART_WL_8B;
  38.         USART_InitStructure.USART_STBits = USART_STBITS_1;
  39.         USART_InitStructure.USART_Parity = USART_PARITY_RESET;
  40.         USART_InitStructure.USART_HardwareFlowControl = USART_HARDWAREFLOWCONTROL_NONE;
  41.         USART_InitStructure.USART_RxorTx = USART_RXORTX_RX | USART_RXORTX_TX;
  42.         USART_Init(UART4, &USART_InitStructure);
  43.   
  44.         //USART_DMA_Enable(UART4,USART_DMAREQ_TX | USART_DMAREQ_RX, ENABLE);
  45.         USART_INT_Set(UART4, USART_INT_RBNE, ENABLE);//开启串口接收中断
  46.         USART_Enable(UART4, ENABLE);                    //使能串口
  47.         //while (USART_GetBitState(UART4, USART_FLAG_TC) == RESET);
  48.   USART_ClearBitState (UART4,USART_FLAG_TC);
  49. }

求一个gd32f103vct6  串口4初始化代码,上面的是我写的,但是发送出来数据不对,是哪里时钟不对还是初始化不对?请指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部