这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » STM32学习之USART(串口通信)

共1条 1/1 1 跳转至

STM32学习之USART(串口通信)

高工
2015-06-12 15:49:38     打赏
void USART1_Configuration()//设置USART1

{        GPIO_InitTypeDef      GPIO_InitStructure;//设置GPIO口用的结构体        USART_InitTypeDef    USART_Init_Structure;//设置USART的结构体        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//这个管脚接TXD        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//选择复用推挽式输出        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;        GPIO_Init(GPIOA,&GPIO_InitStructure);        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//这个管脚接RXD        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//选择浮空输入        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;        GPIO_Init(GPIOA,&GPIO_InitStructure);        USART_Init_Structure.USART_BaudRate=9600;//设置波特率(每秒钟传输的位数)        USART_Init_Structure.USART_StopBits=USART_StopBits_1;//选择停止位 1        USART_Init_Structure.USART_Party=UART_Party_No;//不用奇偶校验 USART_Iinit_Structure_USART_HardwareFlowcontrol=USART_HardwareFlowcontrol_None;//不使用硬件流控制        USART_InitStructure_USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//选择USART的接收和发送使能        USART_Init(USART1,&USART_InitStructure);        USART_Cmd(USART1,ENABLE);//使能USART1; } 经过这样的设置USART1就可以用了 使用USART_SendData(USART1,待发送数据); 也可以使用重映射过的 printfh 函数来发送数据. 重映射过程如下 Int fputc(intch,FILE *f)//需要添加 stdio.h 头文件 {        USART_SendData(USART1,ch);         while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//这段话表示如果发送数据没有结束 就听在这里等待 }       经过以上的配置可以发送和接受数据 但是不能产生USART中断 需要USART中断可以 这样设置 voidNVIC_Configuration() {        NVIC_InitTypeDef       NVIC_InitStructure;         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);        NVIC_InitStructure.IROChannel=USART1_IRQn;        NVIC_InitStructure.IRQChannelPreemPtionPriority=0;        NVIC_InitStructure.IRQChannelSubPriority=0;        NVIC_InitStructure.IPQChannelCmd=ENABLE;        NVIC_Init(&NVIC_InitStructure); }


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]