一.项目创建
1.设置RCC
2.设置串口
点击USATR1
设置MODE为异步通信(Asynchronous)
基础参数:波特率为115200 Bits/s。传输数据长度为8Bit。奇偶检验无,停止位1 接收和发送都使能 > GPIO引脚自动设置 USART1_RX/USART_TX
NVIC Settings一栏使能接收中断
3.设置DMA
4.DMA基础设置
5.设置时钟
6.项目文件创建
二.keil配置
1.配置下载工具
2.编辑代码
定义发送信息
char message[]="hello Windows\n";
在while循环中添加代码
if(flag==1)
{
// 发送信息
HAL_UART_Transmit(&huart1, (uint8_t *)&message,COUNTOF(message),0xFFFF);
// 延时
HAL_Delay(1000);
}
else if(flag==0)
{
HAL_Delay(1000);
}
在main.c中重写USART1_IRQHandler函数
void USART1_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart1); //
HAL_UART_Receive_IT(&huart1, (uint8_t *)getBuffer,10); //
}
3.烧录运行
三.结果展示
四.STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据
1.项目修改
2.烧录运行
总结
通过这次实验更加进一步让我了解了steam32得串口通信得相关知识+