stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用

  • stm32cubmx
  • keil
  • proteus
  • 一个简单的实例
  • 虚拟串口+串口调试

项目设计需要,以下为微控制器模块要用到的软件。要求是实现stm32与上位机的通信,采集传感器信号并且实时反馈给上位机。
此文为项目设计系列一。

stm32cubmx

用cubmx可以通过直观的方式直接配置管脚时钟并生成代码,不必再手动通过写代码的方式进行使能配置,基于HAL库。
下载安装之后新建工程,MCU即微处理器,所以点第一个新建工程。

其次选择对应的板子,可以直接在左边搜索,点击后会出现相应的芯片信息,还提供相应的资源及数据手册,选好后点击start project即可开始。
我使用的是F103C8T6,但是发现只有C6没有C8。在相应数据手册的第7章,我们可以知道芯片对应数字的含义,8和6只是flash的size不同,只要不超过6的size,用两种芯片是一样的。

之后可以对芯片管脚进行一系列的配置,单击管脚可以看到管脚可以用做什么,在页面左边也可以直接找到GPIO,UARST1等直接配置。
之后根据需要配置时钟。

写文件名并选择存储路径,尽量不要有中文。
project manager中要注意更改IDE,因为使用的是keil,要选择如图所示。

另外,code generator中,第一个是把库中所有的函数都加入工程,第二个是把用到的加入,一般选第二个即可。选完后点击右上角生成代码。代码存储在之前选择的路径中。

注意cubmx生成的代码都是基于HAL库而不是标准库,b站正点原子的讲解都是标准库。

keil

在原来的路径中找到MDK-ARM文件夹,点开即可找到keil工程。相应管脚时钟已经初始化完成,基于此可以在main.c中编程或加入其它文件来实现相应功能。
其中点开三个方块可以给文件分组、修改文件的层次,其层次对应于工程左边的文件层次。1、2手动命名,3通过add files可以添加文件。


注意要生成hex文件程序才可以到proteus里仿真。

proteus

打开proteus,新建工程,改名称路径,之后要选择创建固件库(生成代码)并进行相应选择,之后完成页面便会出现相应的板子。

之后双击页面左边device空白区域可以对器件进行选择。连接好电路图即可。
双击板子点击文件夹找到keil生成的hex文件,即可以把keil编写的程序放到板子里。

最后点击页面左下角可以开始停止结束仿真。

一个简单的实例

(1)cubmx只把PA1配置成输出
(2)打开keil在main.c中的while(1)中加入如下内容。其中HAL_GPIO_TogglePin是电平翻转的函数,可以在gpio.h文件里找到,里面还有其他gpio可能用到的函数。

 while (1){/* USER CODE END WHILE */HAL_Delay(500);HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);/* USER CODE BEGIN 3 */}

(3)在proteus里在PA1连接一个示波器,开始仿真,会有示波器窗口弹出,可以看到电平的翻转。如果示波器窗口没有弹出,可以点击页面上的调试,选择示波器窗口。


注意,以上的实例是在其他都配置好了的情况下的。

虚拟串口+串口调试

此部分是我在stm32串口通信时用到的,我用的虚拟串口软件是vspd,需要用它生成虚拟的通信串口对,串口调试软件才能检测到串口,在此不展开论述。

项目设计系列:
基于距离传感器的I2C通信(一).
基于距离传感器的I2C通信(二).

stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用相关推荐

  1. stm32中如何进行printf重定向用于串口调试输出

    1 在main中包含stdio.h 文件 2 Target选项框里选Use MicroLib 选项 3 在main中添加UART1_Configuration()初始化的代码 Uart1初始化, vo ...

  2. STM32中printf重定向到串口

    学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送函数 总是有些不放便,之前编程中熟悉的莫过于printf了,下 ...

  3. Arduino处理STM32中的多个串口通讯问题

    简 介: 对于在Arduino下开发STM32的程序,对于STM32所具有的三个硬件USART进行测测试.结果显示可以使用这些串口完成相应的数据的输入与输出.但是涉及到以下两个问题,还没有得到解决:问 ...

  4. STM32中的串口通信的基础知识

    目录 串口通信基本原理 并行通信与串行通信 串行通信中单工,半双工和全双工的区别 按通信方式不同又可分为异步通信和同步通信 常见的串行通信接口 STM32中的5个串口引脚 STM32中USART的通信 ...

  5. linux 串口总线,linux中的serio(虚拟串行输入输出)总线

    serio 总线也是 kernel 中的一种虚拟的串行输入输出总线,源码 /drivers/input/serio 目录下有很多与之相关的驱动程序. 一. serio 初始化 和之前分析 platfo ...

  6. Keil实例仿真AT89C51串口UART收发数据(附程序)

    目录 一.引言 二.所用软件 1.串口调试工具 2.虚拟串口软件 3.Keil μVision5 三.软件设置 1.串口调试助手软件设置 2.虚拟串口软件设置 3.Keil C51设置 A.调试(.i ...

  7. STM32之USART-串口通信(含串口实验详细解析)

    STM32之串口通信 - USART(含串口实验详细解析) 开发环境:Window 10 开发工具:Keil uVision5 MDK 硬件:STM32F103 资料参考: [正点原子]STM32F1 ...

  8. 【STM32学习5】STM32使用printf函数 打印到电脑串口助手

    本文所使用的方法与代码参考自正点原子,如果想要详细了解这方面的知识,请阅读正点原子官方提供的文档. 一.背景 在开发STM32应用时,将一些信息通过串口打印到电脑上是常用的调试手段.C语言标准库中的p ...

  9. STM32串口通信、串口调试助手

    STM32系列博客:  STM32学习之旅① 开发环境搭建 STM32学习之旅② 固件库的使用及工程模板的建立 STM32学习之旅③ 从点灯到代码移植 STM32学习之旅④ USART串口和上位机通信 ...

最新文章

  1. mysql 数据库乱码
  2. python可视化界面工具_8个流行的 Python可视化工具包,你喜欢哪个?
  3. dwz ajax session超时跳转登录页(struts2自定义拦截器)
  4. CDH6.3.2默认管理端口是7180,HDFS相关端口
  5. Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
  6. mac eclipse tomcat mysql_mac下使用eclipse+tomcat+mysql开发 j2ee(一)
  7. 20155234 2016-2017-2 《Java程序设计》第5周学习总结
  8. 类的构造函数和析构函数、默认构造函数
  9. 未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
  10. 【CSP201803-1 】跳一跳,简单模拟
  11. OJ 21658::Monthly Expense(二分搜索+最小化最大值)
  12. java 克隆对象_Java中克隆(Clone)一个对象
  13. Postaman 报错:Could not get the lock, quitting
  14. android service录音,android录音并上传至服务器
  15. mailgun php版本,php – Mailgun发送带附件的邮件
  16. 拓嘉启远:定制类的商品如何处理退款
  17. OSChina 周四乱弹 ——今天家里只有我和女室友,我想……
  18. 江苏高考时间2021成绩查询,2021年江苏高考成绩什么时候出来 公布时间
  19. 光伏扶贫项目指标下达 如何严把光伏质量关?
  20. 记录各个七七八八的输入 持续更新中

热门文章

  1. 文件服务器 小文件,小型文件服务器
  2. 查看端口状态及端口占用情况
  3. 电脑连上网络,但是上不了网,IP变成了169.254.X.X问题解决!!!
  4. 支付宝怎么做风险控制?
  5. 【Windows】【Linux】---- Java证书导入
  6. 结构建模设计——Solidworks软件之装配体操作基本总结二(装配体内编辑零件、新建零件、标准配合操作)
  7. Chapter007-FPGA学习之IIC总线EEPROM读取
  8. java doc转为pdf_Java利用openoffice将doc、docx转为pdf实例代码
  9. 汇川plc可以用C语言吗,汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解...
  10. Android学习屏幕适配技能包