**
目录: 一、实验一 二、实验二 三、总结
**
一.实验一
使用高速外部时钟:
设置USART:
时钟设置:
在main.c文件的主函数while循环中添加以下代码:
HAL_UART_Transmit(&huart1, (uint8_t *)"hello windows!\r\n", 16 , 0xffff);
HAL_Delay(1000);
实验结果:
二.实验二
在main中,改为一下代码:
uint8_t receivedChar;
if (HAL_UART_Receive(&huart1, &receivedChar, 1, 0xffff) == HAL_OK)
{
switch (receivedChar)
{
case '#': // Pause sending message
HAL_UART_Transmit(&huart1, (uint8_t *)"stop", 16 , 0xffff);
break;
case '*': // Resume sending message
HAL_UART_Transmit(&huart1, (uint8_t *)"hello windows!\r\n", 16 , 0xffff);
HAL_Delay(1000); //??1s
break;
default: // Continue sending message
HAL_UART_Transmit(&huart1, (uint8_t *)"hello windows!\r\n", 16 , 0xffff);
HAL_Delay(1000); //??1s
break;
}
}
实验结果:
三.keil仿真
在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察串口输出波形,并分析时序状态正确与否,计算波特率实际为多少。
通过查看peripherals中的USART1可看到其波特率实际为115107baud
四.实验总结
本次实验我成功地实现了STM32微控制器的串口通信功能。在实验过程中,我配置了STM32的串口模块:我们通过设置波特率、数据位、停止位和校验位等参数,将串口模块配置为与计算机兼容的通信参数及编写STM32的程序:通过编写适当的代码,我实现了STM32接收和发送数据的功能。我使用了串口中断和DMA等技术,提高了数据传输的效率。我编写了相应的串口通信程序,与STM32进行数据通信。我使用了合适的串口参数和通信协议,在计算机上实现了与STM32的数据交互,总体来说,本次实验对我深入理解STM32串口通信的原理和操作步骤起到了关键作用。通过实际的操作和编程,我不仅掌握了串口通信的基本原理,还提高了对STM32微控制器的熟练程度。