打印
[STM32F2]

USART2 重映射

[复制链接]
723|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songxiaofu0201|  楼主 | 2015-10-16 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F207的USART2映射到PD5,PD6后,PD4不能用作普通IO口吗?,我的PD4不能拉低,只要不执行USART2的初始化代码PD4作为普通IO是能正常工作的。求解??


static void  BSP_USART2_Init(uint32_t  baud_rate)
{
  GPIO_InitTypeDef        GPIO_InitStructure;
  USART_InitTypeDef       USART_InitStructure;
       
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);                                                               // Enable GPIO clock
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);      // Enable UART clock
        GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_USART2);
        GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, GPIO_AF_USART2);
        /*
        *  Open207VC_USART2_TX -> PD5 , Open207VC_USARTx_RX -PD6
        */
  /* ----------------- SETUP USART2 GPIO ---------------- */
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
   
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

        /* ----------------- INIT USART STRUCT ---------------- */
  USART_InitStructure.USART_BaudRate            = baud_rate;
  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_Rx | USART_Mode_Tx;
        USART_Init(USART2, &USART_InitStructure);
        /* Enable the Open207V_USARTx Transmit interrupt: this interrupt is generated when the
         Open207V_USARTx transmit data register is empty */
        USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
        USART_Cmd(USART2, ENABLE);
       
        USART_SendData(USART2, 0x33);                //先发送一个字节,解决芯片第一字节发送错误问题
        while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
}


//PD4初始化
void BSP_Emy_Init(void)
{
                GPIO_InitTypeDef  GPIO_InitStructure;
       
                //GPIO_DeInit(GPIOD);
       
                RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
                /* PD4 */
                GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
                //GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
       
                //GPIO_SetBits(GPIOD, GPIO_Pin_4);                //短接    总线音量不可调
                GPIO_ResetBits(GPIOD, GPIO_Pin_4);                //未短接          总线音量可调
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝