IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 串口通信小试牛刀——GPIO端口完成3只LED灯的周期闪烁 -> 正文阅读

[嵌入式]串口通信小试牛刀——GPIO端口完成3只LED灯的周期闪烁

一、 工作原理

(一)串口通信协议和RS232串口标准

串口通信协议
串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485

RS232串口标准
RS232串口标准是美国EIA(电子工业联合会)与BELL等公司一起开发的通信协议。它适合于数据传输速率在0~20000bit/s范围内通信。RS232作为一种标准,被广泛应用于计算机与外设间的一种常通信接口,其中外设应用种类繁多,如:打印机、数据采集模块、测试装置和各种控制回路,甚至RS232串行接口还可用于计算机之间的简单连接上。

(二)RS232电平与TTL电平的区别

RS232电平与TTL电平的区别

  • TTL电平信号之所以被广泛使用,原因是因为:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通信的标准技术。
  • rs232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries AssociaTIon,EIA)所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25)的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和COM2。RS232的电平标准为+12V为逻辑负,-12为逻辑正,TTL电平为5V为逻辑正,0为逻辑负

(三)USB转串口原理

USB转串口原理
USB主机检测到USB转串口设备插入后,首先会对设备复位,然后开始USB枚举过程。USB枚举时过程会获取设备描述符、配置描述符、接口描述符等。描述符中会包含USB设备的厂商ID,设备ID和Class类别等信息。操作系统会根据该信息为设备匹配相应的USB设备驱动。
USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。

二、搭建STM32的开发环境

(一)安装 JDK

(二)安装MDK5

参照:搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写

(三)安装 stm32CubeMX

stm32CubeMX下载地址:https://www.st.com/en/development-tools/stm32cubemx.html
在这里插入图片描述
下载好后,点击开始安装,Next。
在这里插入图片描述
同意协议,Next。
在这里插入图片描述
勾选第一个,Next。
在这里插入图片描述
选择安装路径(不要有中文),然后Next,确定。
在这里插入图片描述
next。
在这里插入图片描述
等待。
在这里插入图片描述
Next。
在这里插入图片描述
点击Done,安装完成。
在这里插入图片描述
双击打开,点击。
在这里插入图片描述
勾选依赖包,Install now。
在这里插入图片描述
等待安装。
在这里插入图片描述

三、用GPIO端口完成3只LED红绿灯的周期闪烁

(一)用stm32CubeMX初始代码

打开stm32CubeMX,New一个Project,选择芯片,点星星?,然后右边Start Project。
在这里插入图片描述
点击System Core,再点击SYS,在debug选项中选择Serial Wire
在这里插入图片描述
点击Clock Configuration,选择PLLCLK。
在这里插入图片描述
点击System Core,再点击RCC,在HSE选项中选择Crystal/Ceramic Resonator。
在这里插入图片描述
点击相应的引脚设置输出寄存器,选择output那一项。选择PA0,PB9,PC15。
在这里插入图片描述
点击project manager,填写路径和项目名,将IDE改为MDK-ARM。
在这里插入图片描述
进入code generate界面,选择生成初始化.c/.h文件,后面点击generate code,之后等待一下。
在这里插入图片描述
点击Open从Keil打开。
在这里插入图片描述

(二)修改代码并编译

打开项目之后,打开main.c文件,找到while函数在里面添加实现功能的代码。

		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);//PA0熄灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(500);//延时0.5s

在这里插入图片描述
编译生成hex文件。
在这里插入图片描述
在这里插入图片描述

(三)烧录运行

打开FlyMcu,如图操作。
在这里插入图片描述
开始编程,成功。
实现流水灯

四、3个GPIO端口的输出波形

点击魔法棒,设置Debug。
在这里插入图片描述
调试。
在这里插入图片描述
选择逻辑分析仪。
在这里插入图片描述
点击Setup,添加引脚。输入(PORTB & 0X00000000)>>0、Display Type选择Bit,依次输入(PORTA & 0X00008000)>>15、(PORTC & 0X00002000)>>13。
在这里插入图片描述
然后观察波形。

参考文献

串口通信知识点总结
搭建STM32开发环境——STM32CubeMX,Keil5
STM32 观察波形

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:41:30  更:2021-10-30 12:42:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:51:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码