STM32的USART串口通讯

STM32的USART串口通讯

  • 一,寄存器与固件库
    • 二,STM32的串口通讯准备工作
      • 三,操作步骤

一,寄存器与固件库

基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式差异比较:
1、基于寄存器方式的开发特点:
(1)具体参数更直观;
(2)程序运行占用资源少。
缺陷:
(1)开发速度慢;
(2)程序可读性差;
(3)维护复杂。

2、基于固态库方式开发,也就是直接调用库函数,特点:
(1)外设交流方便;
(2)查错简单;
(3)对主控制器STM32上手简单。

外设库函数的调用与直接配置寄存器相比,从执行效率上看会有额外的消耗:初始化变量赋值的过程、库函数在被调用的时候要耗费调用时间;在函数内部,对输入参数转换所需要的额外运算也消耗一些时间。由于寄存器的缺陷直接影响了开发效率,程序维护成本,交流成本。通常情况下,只有在频繁调用的中断服务函数时利用直接配置寄存器的方式。

二,STM32的串口通讯准备工作

(一)正确连接硬件(过程较简单,在此不再赘述)

(二)下载软件(资源在野火官网下载)
(1)安装CH340


检查

成功。
(2)下载野火串口调试助手

(3)安装串口下载软件


(4)找到所需Project



三,操作步骤

(一)任务要求
(1)设置波特率为115200,1位停止位,无校验位。
(2)STM32系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手“,也可自己编程。
(3)当上位机给stm32发送“Stop,stm32”后,stm32停止发送。
(二)改写程序
(1)修改stm32f10x_it.c文件的串口中断服务函数:

int i=0;
uint8_t ucTemp[50];
void DEBUG_USART_IRQHandler(void)
{if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET){ucTemp[i] = USART_ReceiveData(USART1);  }if(ucTemp[i] == '!'){if(ucTemp[i-1] == '2'&&ucTemp[i-2] == '3'&&ucTemp[i-3] == 'm'&&ucTemp[i-4] == 't'&&ucTemp[i-5] == 's'&&ucTemp[i-6] == ' ')if(ucTemp[i-7] == 'p'&&ucTemp[i-8] == 'o'&&ucTemp[i-9] == 't'&&ucTemp[i-10] == 's'){printf(" 收 到 !");while(1);}}i++;
}

2、修改main.c:

#include "stm32f10x.h"
#include "bsp_usart.h"void delay(uint32_t count)
{while(count--);
}
int main(void)
{   USART_Config();while(1){    printf("hello ssw ! \n");delay(5000000);}
}

(三)烧录
(1)编译生成hex文件

(2)打开串口下载软件mcuisp将生成的.hex文件烧进芯片


成功!
(3)打开野火串口调试助手,进行数据接收。

总结
(1)注意project的路径不易过“深”,否则可能会导致无法生成HEX文件。
(2)串口下载软件mcuisp的参数设定需要核对无误。
(3)在发送stop stm32!让数据传输停止后,要想重新传输需重新烧录程序。

STM32的USART串口通讯相关推荐

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

    STM32的USART串口通讯程序(查询方式) 文章目录 STM32的USART串口通讯程序(查询方式) 一.USART介绍 1.异步通信: 2.同步通信: 二.CubeMX创建项目 1.点击ACCE ...

  2. 在 stm32CubeMX下生成程序完成流水灯以及完成STM32的USART串口通讯程序实现STM32系统给上位机(win10)连续发送“hello windows”

    目录 一.STM32CubeMX简介及安装 二.利用STM32CubeMX生成代码 1.创建项目 2.配置芯片 3.导出项目 ​ 三.Keil中补充代码完善功能 四.在Keil中观察实验波形 五.US ...

  3. 了解串口协议,及完成STM32的USART串口通讯程序,并用keil观察波形

    文章目录 前言 一.串口协议 1.RS-232 2.485标准 二.RS-232.485和TTL电平 1.RS-232电平 2.485 3.TTL电平 4.区别 三.USB/TTL转232 1.CH3 ...

  4. STM32的USART串口通讯程序

    文章目录 一.STM32 USART串口通信 1.串口通信简介 1.1.物理层 1.2.协议层 2.STM32 的 USART 简介 二.STM32的USART串口通讯程序 1.创建项目 2.添加.s ...

  5. 【嵌入式系统开发11】串口通讯“小试牛刀”——完成一个STM32的USART串口通讯程序

    本文目的是主要介绍通过STM32F103C8T6完成一个STM32的USART串口通讯程序,在没有示波器条件下,使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形. 文章目录 前言 (一)需求分析 ...

  6. 基于STM32的USART串口通讯程序

    文章目录 一.串口协议和RS-232.485标准,以及RS232.485电平与TTL电平的区别,USB/TTL转232模块的工作原理 1.串口协议 2.RS-232.RS-485标准 3.RS232. ...

  7. 串口通信-STM32的USART串口通讯程序

    目录 一.原理介绍 1.串口协议 2.常用协议标准 1)RS-232 2)RS-485 3.RS232.485电平与TTL电平的区别 1)RS232电平 2)RS485电平 3)TTL电平 4)RS2 ...

  8. STM32的USART串口通讯实验

    文章目录 实验环境 一.USART介绍 二.使用STM32CubeMX配置项目 STM32CubeMX配置环境 使用Keil MDK 生成.Hex文件 烧录 串口调试工具查看 三.波形分析 参考资料 ...

  9. 完成一个STM32的USART串口通讯程序

    一.hal库实现 (1)打开STM32CubeMX,创建新项目(如下图红框,此时我已经建立完项目,点击如图中1的历史项目) (2)选择STM32F103C8开发板 (3)如下图选择高速时钟 (4)设置 ...

最新文章

  1. hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
  2. SQL获取最新版本Version记录
  3. Button的使用(二):从资源文件中
  4. 中国水务行业运行状况调研与投资前景规划预测报告2022-2027年新版
  5. 【机器视觉】 endfor算子
  6. 《.NET 性能优化》送书活动结果公布
  7. 一些不错的计算机书籍
  8. java hibernate unable to read xml_各位大神,这是什么错误啊
  9. 阿里AI两项技术刷新行业纪录,为城市大脑,OR也为无人车?
  10. Cacti+Nagios安装后按自己的相关要求修改相关信息
  11. 星河经纬加入会员可靠吗_珍爱网免费相亲可靠吗?女会员处境艰难红娘为她重拾勇气...
  12. asp.net 打印控件之报表
  13. ubuntu 制作gif 动态图片
  14. flashpaper
  15. 利用OPENCV为android开发畸变校正的JNI库
  16. java7723魂斗罗2_魂斗罗2013-丛林之谜
  17. 叶俊:把特质用对地方就是优势
  18. 小蝌蚪找妈妈(召唤神龙)源码
  19. 小游戏赛道如何加速流量增长?
  20. oracle模板数据文件,Oracle EBS如何通过命令上传XML/BI Publisher数据定义文件和模板文件...

热门文章

  1. xtrabackup备份恢复
  2. android 壁纸加载流程,Android 桌面加载图标过程分析
  3. 基于LVM进行磁盘分区
  4. 《大话数据结构》第六章 树
  5. 神马权重批量查询 神马权重一键查询工具
  6. elasticsearch中分词器edge_ngram和ngram的区别
  7. anaconda目录下的pkgs文件夹很大,可以删除吗?
  8. [转]Twain Capabilities
  9. 关于用户访问请求慢,TTFB时间长的问题分析
  10. Hive中的用户自定义函数UDF