失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > STM32的USART串口通讯程序(查询方式)

STM32的USART串口通讯程序(查询方式)

时间:2019-07-13 19:41:01

相关推荐

STM32的USART串口通讯程序(查询方式)

STM32的USART串口通讯程序(查询方式)

文章目录

STM32的USART串口通讯程序(查询方式)一、USART介绍1.异步通信:2.同步通信:二、CubeMX创建项目1.点击ACCESS TO MCU SELECTOR2.选择F103C83.Mode选择异步通信(Asynchronous)4.波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样)5.配置项目设置6.生成项目三、Keil编译程序以及Hex文件的生成1.用keil打开刚刚在CubeMX生成的项目文件2.在main.c文件中补充代码3.编译文件四、烧录程序到开发板1.打开mcuisp(或者FlyMcu)2.把开发板`boot0`置**1**,`boot1`置**0**,按下复位按钮3.搜索串口4.开始编程五、调用调试助手,打开串口查看结果1.把开发板`boot0`和`boot1`都置0,按下复位键2.调用开发助手六.在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察1.魔法棒中Target界面设置2.Debug页面设置3.开始调试4.添加引脚,输入5.运行程序6.观察波形七.参考
一.完成一个STM32的USART串口通讯程序(HAL库完成)(查询方式即可,暂不要求采用中断方式),要求:

1)设置波特率为115200,1位停止位,无校验位;

2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。二. 在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 请用此功能观察题中串口输出波形,并分析时序状态正确与否,高低电平转换周期(LED闪烁周期)实际为多少。

STM32CubeMX

KEIL5:[安装教程](/zhoushuaiyxlmwan/article/details/127190907?

spm=1001..3001.5502)

野火多功能调试助手:/s/14zEjYNlU-2CjgoR1sI5dSg 提取码:rau0

mcuisp(或者FlyMcu): mcuisp百度网盘链接提取码:h2xc

STM32F103C8T6的最小核心板

一、USART介绍

USART/UART通信是STM32的一个非常重要的外设,是一种通用串行数据总线,可实现全双工通信。

UART:通用异步收发器,

USART:通用同步/异步收发器,

可以看出USART比UART多了一个同步模式。

1.异步通信:

异步通信是按字符传输的。每传输一个字符就用起始位来进来收、发双方的同步。不会因收发双方的时钟频率的小的偏差导致错误。

这种传输方式利用每一帧的起、止信号来建立发送与接收之间的同步。特点是:每帧内部各位均采用固定的时间间隔,而帧与帧之间的间隔时随即的。接收机完全靠每一帧的起始位和停止位来识别字符时正在进行传输还是传输结束。

2.同步通信:

进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。

优点是可以实现高速度、大容量的数据传送;缺点是要求发生时钟和接收时钟保持严格同步,同时硬件复杂。

本文使用异步通信

二、CubeMX创建项目

1.点击ACCESS TO MCU SELECTOR

2.选择F103C8

3.Mode选择异步通信(Asynchronous)

4.波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样)

5.配置项目设置

6.生成项目

三、Keil编译程序以及Hex文件的生成

1.用keil打开刚刚在CubeMX生成的项目文件

2.在main.c文件中补充代码

我们需要使用HAL库中HAL_UART_Transmit()函数来进行查询方式加粗样式的串口通讯

①.在main.c中定义STM32需要给上位机发送的消息

uint8_t hello[20]="hello world\n";

②.在main.c中定义一个延时函数,来使设置发送的时间间隔

void Delay_wxc( volatile unsigned int t){unsigned int i;while(t--)for (i=0;i<800;i++);}

③.在while循环中调用查询,并调用延时函数

while (1){HAL_UART_Transmit(&huart1,hello,20,100000);Delay_wxc(3500); //这里每个人电脑不一样发送的间隔时延需要自己调整尝试/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

3.编译文件

四、烧录程序到开发板

1.打开mcuisp(或者FlyMcu)

2.把开发板boot01boot10,按下复位按钮

3.搜索串口

4.开始编程

五、调用调试助手,打开串口查看结果

1.把开发板boot0boot1都置0,按下复位键

2.调用开发助手

六.在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察

1.魔法棒中Target界面设置

2.Debug页面设置

左DialogDDL:DARMSTM.DLL

左Parameter:-pSTM32F103C8

右DialogTARMSTM.DLL

右Parameter:-pSTM32F103C8

3.开始调试

4.添加引脚,输入

①.点击添加

②.输入引脚地址`USART1_SR

最后点击close

5.运行程序

6.观察波形

七.参考

/isyuuun/article/details/121042146

如果觉得《STM32的USART串口通讯程序(查询方式)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。