串口收发

void My_USART1_Init(void)
{
     GPIO_InitTypeDef  GPIO_Initstrue;
    
     USART_InitTypeDef  USART_Initstrue;
     NVIC_InitTypeDef   NVIC_Initstrue;//定义变量
    
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);    //使能USART1,GPIOA时钟
    
    
   GPIO_Initstrue.GPIO_Mode=GPIO_Mode_AF_PP;
     GPIO_Initstrue.GPIO_Pin=GPIO_Pin_9;
     GPIO_Initstrue.GPIO_Speed=GPIO_Speed_10MHz;
     GPIO_Init(GPIOA,&GPIO_Initstrue);
     
     GPIO_Initstrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;
     GPIO_Initstrue.GPIO_Pin=GPIO_Pin_10;
     GPIO_Initstrue.GPIO_Speed=GPIO_Speed_10MHz;//初始化IO口
    
     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_ITConfig(USART1, USART_IT_RXNE,ENABLE);//开启中断接收函数
    USART_Cmd(USART1,ENABLE);//使能串口
    
    
    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)
 {    
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    My_USART1_Init();
     while(1);
 }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值