1.实验环境
本次实验我们使用到的硬件有STM32F103C8T6芯片,软件我们使用KeilMDK与STMCubeMX进行编程,使用野火串口调试工具进行结果的查看。当然也可以使用其他的串口调试工具进行查看结果
2.使用中断方式进行串口通信
使用STMCubeMX配置项目
2.1.串口配置
这里我们使用的是STM32F103C8T6系统板,打开STM32CubeMX软件,选择对应的芯片,开始配置
配置sys
配置rcc
配置时钟
配置串口
开启中断使能
完成项目配置
打开项目
2.2.代码编写
定义全局变量
重载中断响应函数
在while循环中写入以下代码
烧录程序之后打开串口调试工具
2.3.测试结果
测试结果
运行正常
3.使用DMA方式进行串口通信
在刚才配置项目的基础上,我们打开DMA通道
在main函数中修改成如下代码
int main(void)
{
HAL_Init();
uint8_t message[] = "hello windows\n"; //定义数据发送数组
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
while (1)
{
HAL_UART_Transmit_DMA(&huart1, (uint8_t *)message, sizeof(message));
HAL_Delay(1000);
}
}
打开串口测试工具进行结果查看