GPIO直接读取信号发生器的数据

2019-07-20 08:33发布

F407,用PA1接收信号发生器的信号,串口是usart1代码如下,为什么会是乱码,代码和引脚连接如下[mw_shl_code=c,true]void MyUsart1(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        USART_InitTypeDef USART_InitStruct;
        //NVIC_InitTypeDef NVIC_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//′®¿úê±Öóê1Äü
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//GPIOê±Öóê1Äü
       
        //òy½Å·tóÃó3éä
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
       
        //PA1×÷Îaêäèë
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN;
        GPIO_InitStruct.GPIO_OType =GPIO_OType_PP;
        GPIO_InitStruct.GPIO_Pin =GPIO_Pin_1;
        GPIO_InitStruct.GPIO_PuPd =GPIO_PuPd_NOPULL;
        GPIO_InitStruct.GPIO_Speed =GPIO_Fast_Speed;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
       
        //PA9oíPA10ÅäÖÃ
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStruct.GPIO_OType =GPIO_OType_PP;
        GPIO_InitStruct.GPIO_Pin =GPIO_Pin_9|GPIO_Pin_10;
        GPIO_InitStruct.GPIO_PuPd =GPIO_PuPd_NOPULL;
        GPIO_InitStruct.GPIO_Speed =GPIO_Fast_Speed;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
       
        //′®¿úÅäÖÃoíê1Äü
        USART_InitStruct.USART_BaudRate =115200;
        USART_InitStruct.USART_HardwareFlowControl =USART_HardwareFlowControl_None;
        USART_InitStruct.USART_Mode =USART_Mode_Rx|USART_Mode_Tx;
        USART_InitStruct.USART_Parity =USART_Parity_No;
        USART_InitStruct.USART_StopBits =USART_StopBits_1;
        USART_InitStruct.USART_WordLength =USART_WordLength_8b;
        USART_Init(USART1,&USART_InitStruct);
        USART_Cmd(USART1,ENABLE);
        //USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
       
//        NVIC_InitStruct.NVIC_IRQChannel =USART1_IRQn;
//        NVIC_InitStruct.NVIC_IRQChannelCmd =ENABLE;
//        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =1;
//        NVIC_InitStruct.NVIC_IRQChannelSubPriority =1;
//        NVIC_Init(&NVIC_InitStruct);
  
}
//void USART1_IRQHandler()
//{
//        u8 res;
//        if(USART_GetITStatus(USART1,USART_IT_RXNE))
//        {
//        res=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
//                //res=USART_ReceiveData(USART1);
//        USART_SendData(USART1,res);
//        }
//}

int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        MyUsart1();
        while(1)
        {
        u8 res;
        res=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
                USART_SendData(USART1,res);
        }
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。