STM32串口通讯

STM32串口通讯
摘要由CSDN通过智能技术生成

STM32串口通讯

基于寄存器的STM32流水灯编程与基于固件库的STM32流水灯的差异

基于寄存器的编程方式更贴近与底层,类似机器语言一样;适用于较想深入了解内核的人。而基于固件库编程相当于对寄存器添加了一层封装,使移植更方便,偏向于更高层的更复杂的算法。

串口通讯的一些基本概念

1.串行通信与并行通信
通讯按照数据传输的方式可分为串行通信与并行通信,串行通讯是指设备之间通过少量数据信号线(一般是 8根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、16、32 及 64根或更多的数据线进行传输,数据位是同时传输的通讯方式。
2、全双工、半双工及单工
根据通讯方向的不同,通讯方式又可以分为全双工、半双工及单工三种方式。
全双工:在同一时刻允许两个设备的任何一个都可以同时进行数据的发送与接收,就好比双向车道,两个方向的车辆不会有任何的干扰。
半双工:在同一时刻,只允许两个设备进行接收或者发送,不允许在同一时刻单个设备既接收又发送,就好比在一条乡间小道上同一时刻只允许一辆车通过。
单工:在任何时刻,数据的传输方向都是不变的,数据只允许一个固定的方向传输,接收双方是固定的,一个固定为发送设备,一个固定为接收设备。就好比是单行道,只允许一个方向的行驶。
3.同步通信和异步通信
同步通信:收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据,即:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步通信:不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,即:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

串口通讯的操作过程

实验环境
软件:MDK5,多功能串口调试助手。
硬件设备:ST-Link V2下载烧录线,USB to TTL(串口转换线),STM32核心板
硬件连接:
①USB转TTL线与STM32核心板的连接
在这里插入图片描述
②ST-Link V2线与STM32核心板的连接接口

STM32核心板 ST-Link
3V3 3V3
GND GND
SWIO SWDIO
SWCLK SWCLK

3.硬件连接实物图
在这里插入图片描述

导入一个STM32的串口项目
1导入STM32的项目到Keil中
在这里插入图片描述
2.编译项目文件,在编译过程中keil可能会提示xx文件找不到,你就需要手动添加该文件。
在这里插入图片描述

3.设置keil,使程序能够烧录到stm32芯片运行
①设置输出文件
在这里插入图片描述
②设置调试页面

这里是引用

在这里插入图片描述
③如果现在就进行烧录,可能会报错"Flash Download error"
在这里插入图片描述
④右键项目–>Option for Target ‘USART’–>Debugger–>Setting–>Flash Download–>Erase Full Chip。
在这里插入图片描述

4.连接USB转串口线,并在电脑上安装串口驱动程序。
在这里插入图片描述
双击CH341SER.INF选择安装
在这里插入图片描述
在安装的时候,你需要保证你的usb是连上的,否则会失败
在这里插入图片描述

安装成功后打开设备管理器,查看端口是否安装成功
在这里插入图片描述
6.打开多功能串口调试助手,打开串口,在开发板上按一次Reset键,会发送一次数据。
在这里插入图片描述

STM32系统给上位机win10连续发送"hello windows!",当上位机给STM32发送"Stop将上述项目

1.将上述项目复制到另一个地方,重新使用keil打开
2.更改部分代码
main.c

 
#include "stm32f10x.h"
#include "bsp_usart.h"


/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
	
	
	// 接收缓冲,最大100个字节
uint8_t USART_RX_BUF[100];
// 接收状态标记位
uint16_t USART_RX_FLAG=0;

//串口中断服务函数
void DEBUG_USART_IRQHandler(void
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值