微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > NO4+串口测试

NO4+串口测试

时间:10-02 整理:3721RD 点击:
       由于工作出差问题,有一段时间没发帖子了。正好今天下班早,赶紧拿出开发板,玩耍了一下,今天测试了一下串口。
       STM32 芯片拥有多个 USART(Universal Synchronous Asynchronous Receiver and Transmitter) 外设用于串口通讯。STM32 的串口功能非常强大,它不仅支持最基本的通用串口同步、串口通信, 还有 LIN 总线功能( 局域互联网)、IRDA 功能( 红外通信)、 SmartCard 功能。 本章介绍最基本的也是最常用的功能,利用串口来输出调试信息,从而达到帮助我们调试程序的目的。另外, 它还具有UART(Universal Asynchronous Receiver and Transmitter) 外设,和 USART不同的是, UART 在 USART 基础上裁剪掉了同步通信的功能,只有异步通信。 同步通信中传输方和接收方使用同步时钟。我们平时用的串口通信基本都是 UART。USART 满足外部设备对工业标准 NRZ 异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使它的应用更加广泛。 USART 发送接收有三种基本方式,轮询、中断和 DMA。本次实验主要用的是中断的方法,下面言归正传,介绍实验内容。
1使用 STM32CubeMX 软件生成 USART 工程  


选择时钟


选择串口,这里选择的USART6


配置USART时钟,USART6是挂载在APB2上面的


配置串口和中断


配置串口的参数


使能串口中断


给串口IO命名


配置中断优先级就可以生成工程了

2修改主函数和回调函数

主函数

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART6_UART_Init();
  HAL_UART_Transmit_IT(&huart6,"串口测试",20);
  while (1)
  {
  }
}
回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    {
    HAL_UART_Transmit(&huart6,&aRxBuffer,1,0);
    HAL_UART_Receive_IT(&huart6,&aRxBuffer,1);
   }  

3 测试结果


串口测试结果

感觉STM32CubeMX和keil配合使用非常的方便快捷,建议大家使用。


不知小编开发出什么新的项目?

环境监测系统

看起来高达上     跟进学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top