STM32F302串口实验问题

2019-07-20 19:16发布

STM32F302串口实验使用usart1,但是发不出去
void My_USART1_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStrue;
        USART_InitTypeDef USART_InitStrue;
//        NVIC_InitTypeDef NVIC_InitStrue;
       
        RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOA, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_SYSCFG,ENABLE);
       
         // òy½Å¸′óÃ
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_7); //PA10???USART1
       
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;
        GPIO_InitStrue.GPIO_Speed=GPIO_Speed_Level_1;
        GPIO_InitStrue.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStrue.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_7); //PA9???USART1
  GPIO_Init(GPIOA,&GPIO_InitStrue);
       
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN;
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitStrue.GPIO_Speed=GPIO_Speed_Level_1;
        GPIO_InitStrue.GPIO_PuPd=GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA,&GPIO_InitStrue);
       
        USART_InitStrue.USART_BaudRate=115200;
        USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
        USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
        USART_InitStrue.USART_Parity=USART_Parity_No;
        USART_InitStrue.USART_StopBits=USART_StopBits_1;
        USART_InitStrue.USART_WordLength=USART_WordLength_8b;
       
        USART_Init(USART1,&USART_InitStrue);
       
        USART_Cmd(USART1,ENABLE);//ê1Äü′®¿ú1
/*       
        NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;
        NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;
        NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;
        NVIC_Init(&NVIC_InitStrue);
        */
       
}
/*
void USART1_IRQHandler(void)
{
        u8 res;
         if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
     res= USART_ReceiveData(USART1);
     USART_SendData(USART1,res);   
  }
}

*/

int main(void)
{

        system_init();
//  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        My_USART1_Init();       
        while (1)
        {

    u16 res=0x55;
     USART_SendData(USART1,res);   

                GPIO_WriteBit(GPIOB, GPIO_Pin_2, Bit_SET);
                delay_ms(500);
                GPIO_WriteBit(GPIOB, GPIO_Pin_2, Bit_RESET);
                delay_ms(500);
        }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lvehe
1楼-- · 2019-07-20 19:41
 精彩回答 2  元偷偷看……
刘瑶
2楼-- · 2019-07-20 23:47
lvehe 发表于 2016-10-25 19:32
GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN; 改为GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF;
取消中断部分的注 ...

你好,还是不可以。请问一下,你有stm32f302芯片的编程模版吗?我担心是可能和系统文件冲突

一周热门 更多>