stm32串口通信

  • 串口协议和RS—232标准
    • RS232电平与TTL电平的区别
      • USB/TTL转RS232
  • CH340串口安装
    • 安装stm32cubemx并编写程序
      • 实现led灯的周期闪烁
  • 用stm32完成USART串口通信
    • 接下来进行波形观察
      • 总结
  • 两个工程完整代码

串口协议和RS—232标准

串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485
RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。

RS232电平与TTL电平的区别

TTL标准:
TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。
RS232标准:
逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次

USB/TTL转RS232

USB转TTL STM32F103C8T6
GND G
3V3 3V3
RXD PA9
TXD PA10

CH340串口安装


双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340

安装stm32cubemx并编写程序

链接:STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
傻瓜式安装,把所有的框都选上
安装完成后,点击help,下载依赖包

下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了
你们选择后,点击install now就行

下载完成后回到home界面。点击图中的地方,创建新项目

点击part name输入自己的芯片,以stmc8t6
为例,之后中间出现的信息点击之后,在点击start project

点击system core,进入里面的sys,在debug那里选择serial wire


接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里
观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上

所以我们把hse那里设置为crystal/ceramic resonator就行了

接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7
PB9 PC15

接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight
mode不用改

点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM

进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了

打开刚刚生成的项目将main.c的主函数部分用下列函数代替

SystemClock_Config();//系统时钟初始化MX_GPIO_Init();//gpio初始化while (1){     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯HAL_Delay(500);//延时0.5s        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯HAL_Delay(500);//延时0.5s}


在烧录运行,串口要断电置boot0为0,之后即可编译运行成功

实现led灯的周期闪烁

USB转TTL STM32F103C8T6
GND G
3V3 3V3
RXD PA9
TXD PA10

进入flymcu进行烧录

效果图如下

用stm32完成USART串口通信

打开stm32cubeMX,进入我的工程,选择芯片,开始进入

接下来选择时钟配置

设置USART2,点击MODE,选择Asynchronous

接着点击CLOCK configurstion选择HSE,PLLCLK

设置中断,在NVIC SEtting中点击Enabled

后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目


后面生成工程打开即可
只需要把main.c里面的程序改为下列代码

char data[]="hello windows!\n";//发送的数据
HAL_UART_Transmit(&huart2, (uint8_t *)data, 15, 0xffff);//发送
HAL_Delay(1000);//延时


后面进行烧录
打开串行助手打印出hello windows

接下来进行波形观察

对keil进行相关操作

之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形

大约1s一个波形

总结

通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验

两个工程完整代码

链接:https://pan.baidu.com/s/11DImWFKfnLbQDtseEeS8SA
提取码:e8cr

stm32实现串口通信和LED灯点亮相关推荐

  1. 嵌入式作业STM32定时器实现串口通信及LED灯闪烁

    目录 前言 一.什么是定时器 1.定时器与计数器 2. 定时器有什么用 3. 定时器的原理 4.时钟产生器和时基单元 二.用STM32CubeMx创建项目 1. 创建项目 2.配置RCC和SYS 3. ...

  2. 单片机与PC机的交流———基于STM32的串口通信

    STM32之串口通信程序 前言: 一.串口通信要求 二.串口通信准备 1.硬件准备 2.软件准备 三.下载程序进入STM32 1.下载之前相关配置 2.下载 四.最终效果展示 总结: 前言: 本文主要 ...

  3. K210学习笔记(三) K210与STM32进行串口通信,K210发STM收

    文章目录 前言 一.以/r/n为结尾 二.K210端代码 三.STM32端 3.1 main函数 四.测试结果 4.1当收到1时 4.2当收到2时 4.3 测试视频 总结 前言 前面我们讲了STM32 ...

  4. 嵌入式STM32入门之STM32基础串口通信

    STM32基础串口通信 一.前言 二.串口协议 (1)浅谈设备通信方式 (2)具体串口协议 (3)STM32的串口通信 (4)RS-232通信协议 (5)USB To TTL(CH340) 5.1 C ...

  5. 【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通信

    利用OpenMV与STM32进行串口通信 OpenMV端的程序 # Untitled - By: dell - 周一 7月 19 2021# Blob Detection and uart trans ...

  6. stm32之串口通信

    串口调试 前言 一.什么是串口? 二.使用串口给上位机发送"hello windows!" (一)串口初始化 (二)代码如下 (三)串口调试 三.使用串口控制LED灯 总结 前言 ...

  7. STM32 —— STM32 的串口通信

    STM32 -- STM32 的串口通信 STM32的串口通信接口有两种,分别是:UART(通用异步收发器).USART(通用同步异步收发器).而对于大容量 STM32F10x 系列芯片,分别有 3 ...

  8. Ardunio下实现STM32的串口通信及其与Stduino的区别

    摘要 本文介绍了在Ardunio下配置STM32并进行STM32的串口通信:之后我将介绍一下国人MCU开发平台Stduino与现在所使用的Arduino进行比较. 文章目录 摘要 :man_stude ...

  9. 采用STM32外部中断模式控制LED灯亮灭

    文章目录 实验工具 一.STMCube配置项目 1.配置引脚 2.配置EXIT 3.配置SYS 4.配置GPIO 5.创建代码 二.使用KEil配置代码 1.打开生成的项目,找到stm32f1xx_i ...

  10. STM32上手-STWingSKIT_BC28学习笔记(一)环境搭建和LED灯点亮

    嵌入式STM32上手学习笔记(一)LED灯点亮 STM32开发环境的搭建 1. 安装keil5 IDE 2. 下载STM32F1的支持包 3. 在Pack installer中找到F1支持包下载 4. ...

最新文章

  1. 解析java匿名内部类
  2. SQL转换函数to_char/to_date/to_number
  3. Android Binder ProcessState IPCThreadState相关介绍
  4. MySQL基础原创笔记(一)
  5. USACO 2.4.1 The Tamworth Two
  6. 【2017年第2期】感悟大数据——从数据管理和分析说起
  7. 风控策略和模型的区别_风控策略概述
  8. sap netweaver 7.02_sap顾问工作内容,岗位职责
  9. 【语音加密】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
  10. 计算机图形学完整笔记(三):裁剪
  11. 快速理解Java的三种代理模式
  12. 用java编写宠物店管理系统_基于jsp的宠物店管理系统-JavaEE实现宠物店管理系统 - java项目源码...
  13. 使用 DUET/REFIND 方法将 NVME 添加为引导驱动器
  14. 在linux系统上安装坚果云
  15. 软考网络工程师备考建议【经验教训】
  16. 简述窄带与宽带信号的区别
  17. 转:著名的100个管理定律点评8 - 竞争决胜的智慧与策略
  18. linux mint软件包,在Linux Mint上安装R软件包的问题18.1
  19. python监控文件或目录大小_python监控文件或目录的变化(实例代码)
  20. oracle 索引基本原理

热门文章

  1. ip网络广播系统连接服务器失败,航天广电数字IP网络广播系统安装IP地址调试6大知识...
  2. 这就是艺术「GitHub 热点速览 v.22.25」
  3. python椭圆花瓣_Python抓取花瓣网高清美图
  4. python之花瓣美女下载
  5. 计算机二级知识汇总手抄报,计算机二级vb_全国计算机二级vb真题
  6. 网络编程(网络通信协议、TCP和UDP协议、TCP和UDP通信)
  7. SpreadJS使用小结
  8. <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
  9. Linux字体库ttc还是ttf,几种操作系统字体格式:otf/ttf/ttc格式字体的区别
  10. VScode设置为中文版