×
单片机 > 单片机程序设计 > 详情

STM32系列第8篇--串口配置步骤

发布时间:2020-08-31 发布时间:
|

//初始化串口1void My_USART1_Init(void) {    GPIO_InitTypeDef GPIO_InitStrue;    USART_InitTypeDef USART_InitStrue;    NVIC_InitTypeDef NVIC_InitStrue;    //串口时钟使能,GPIO时钟使能    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);    //GPIO端口模式设置,PA9设置推挽复用,PA10设置浮空模式    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;    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);    //开启接收中断    USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);    //初始化NVIC    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); }

关键字:STM32系列  串口配置

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址