文章目录
一、基于中断的方式实现串口通信
1.使用STM32CubeMX配置项目
1.在STM32CubeMX中选择相应芯片
这里使用STM32F103C8芯片进行实现
2.配置引脚
3.配置RCC
4.配置SYS
5.配置USART1
6.配置NVIC
7.配置时钟
8.在项目设置中进行如下设置
设置完成后,点击右上角GENERATE CODE 进行输出。
2.在keil中进行编程
1.在mian.c文件中先进行定义
2.编辑代码进行发送提示信息和接收中断
3.在while(1)中进行输入
4.编译
5.烧录
6.实现效果
fireTools 2023-10-29 16-43-24
3.使用示波器进行观察
1.设置示波器
2.输出结果
根据图片可得,该程序输出的高电平和低电平符合客观事实
波特率为0.91593Hz
二、使用DMA进行串口通信
1.使用STM32CubeMX配置项目
1.配置RCC
2.配置USRT1
3.配置DMA
4.配置时钟
设置完成后,点击右上角GENERATE CODE 进行输出。
2.在keil中进行编程
1.在main.c中进行定义以及设置输出
2.在while函数中写入代码
3.编写定义开始暂停代码
4.编译
5.烧录
6.实现结果
fireTools 2023-10-29 17-27-51
3.示波器观察波形
输出结果
根据图片可得,该程序输出的高电平和低电平符合客观事实
波特率为1.002875Hz
三、总结
此次实验的内容为基于中断/DMA方式的串口通信。
基于中断/DMA方式的串口通信实验是深入学习嵌入式系统通信原理与技术的重要环节。
掌握了配置中断和DMA的基本步骤,包括寄存器设置、中断优先级的配置以及DMA通道的初始化等。中断方式在数据传输过程中具有更高的灵活性,而DMA方式则可以减轻CPU负担,提高传输效率。我学会了根据具体应用场景选择合适的通信方式。
通过这个实验,我不仅提高了自己在嵌入式系统通信方面的技能,而且培养了解决问题和持续学习的能力。我相信这些经验和知识将对我的未来学习产生积极的影响。