MM32F0020 UART1空闲中断接收

2.初始化MM32F0020 UART1空闲中断和NVIC中断

3.编写MM32F0020 UART1中断接收和空闲中断函数

4.编写MM32F0020 UART1发送字节和ASCII字符函数

5.编写MM32F0020 UART1处理空闲中断接收数据函数

6.MM32F0020 UART1发送UART1空闲中断接收到的数据到上位机串口助手

提要:

  学习MM32F0020 UART1空闲中断接收数据,UART1产生空闲中断表示接收完一帧数据,可以通过空闲中断置标志来判断一帧数据接收完成,通过上位机串口助手发送8字节的十六进制数据:0x55,0x01,0x02,0x03,0x04,0x05,0x06,0x07;下位机MM32F0020的UART1空闲中断接收到一帧:0x55,0x01,0x02,0x03,0x04,0x05,0x06,0x07 共8字节数据后,通过UART1发送多字节函数,原样发送到串口助手显示出来。

内容:

1、MM32F0020简介

(1)MM32F0020微控制器是基于Arm® Cortex®-M0内核,最高工作频率可达48MHz;

  (2)供电电压支持:2.0V - 5.5V;

  (3)多达32KB的Flash,2KB的SRAM;

  (4)1个I2C;

  (5)2个UART;

  (6)1个12位的共8通道的ADC;

  (7)1个I2C或I2S;

  (8)1个16位高级定时,1个16位通用定时器,1个16位基本定时器;

  (9)1个IWDG和一个WWDG看门狗。

2.初始化MM32F0020 UART1空闲中断和NVIC中断:

  MM32F0020 UART1的GPIO初始化,根据MM32F0020的DS数据手册选择PA12:UART1_TX,PA3:UART1_RX做为UART1的发送和接收数据的引脚,具体配置步骤,及其初始化如下所示:

(1)使能GPIOA外设时钟;

(2)配置IO管脚GPIO_AFx复用为UART1功能;

(3)配置UARTx IO的管脚;

(4)配置GPIO的输出速度;

(5)配置IO管脚的工作模式;

(6)根据GPIOA配置的参数整体初始化GPIO各管脚的成员参数。

void Bsp_UART1_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE); //UART Initial set GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1); GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_1); //UART1_TX GPIOA.12 GPIO_StructInit(&GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStruct); //UART1_RX GPIOA.3 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStruct); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwjyg.html