stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用
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+虚拟串口+串口助手的使用相关推荐
- stm32中如何进行printf重定向用于串口调试输出
1 在main中包含stdio.h 文件 2 Target选项框里选Use MicroLib 选项 3 在main中添加UART1_Configuration()初始化的代码 Uart1初始化, vo ...
- STM32中printf重定向到串口
学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送函数 总是有些不放便,之前编程中熟悉的莫过于printf了,下 ...
- Arduino处理STM32中的多个串口通讯问题
简 介: 对于在Arduino下开发STM32的程序,对于STM32所具有的三个硬件USART进行测测试.结果显示可以使用这些串口完成相应的数据的输入与输出.但是涉及到以下两个问题,还没有得到解决:问 ...
- STM32中的串口通信的基础知识
目录 串口通信基本原理 并行通信与串行通信 串行通信中单工,半双工和全双工的区别 按通信方式不同又可分为异步通信和同步通信 常见的串行通信接口 STM32中的5个串口引脚 STM32中USART的通信 ...
- linux 串口总线,linux中的serio(虚拟串行输入输出)总线
serio 总线也是 kernel 中的一种虚拟的串行输入输出总线,源码 /drivers/input/serio 目录下有很多与之相关的驱动程序. 一. serio 初始化 和之前分析 platfo ...
- Keil实例仿真AT89C51串口UART收发数据(附程序)
目录 一.引言 二.所用软件 1.串口调试工具 2.虚拟串口软件 3.Keil μVision5 三.软件设置 1.串口调试助手软件设置 2.虚拟串口软件设置 3.Keil C51设置 A.调试(.i ...
- STM32之USART-串口通信(含串口实验详细解析)
STM32之串口通信 - USART(含串口实验详细解析) 开发环境:Window 10 开发工具:Keil uVision5 MDK 硬件:STM32F103 资料参考: [正点原子]STM32F1 ...
- 【STM32学习5】STM32使用printf函数 打印到电脑串口助手
本文所使用的方法与代码参考自正点原子,如果想要详细了解这方面的知识,请阅读正点原子官方提供的文档. 一.背景 在开发STM32应用时,将一些信息通过串口打印到电脑上是常用的调试手段.C语言标准库中的p ...
- STM32串口通信、串口调试助手
STM32系列博客: STM32学习之旅① 开发环境搭建 STM32学习之旅② 固件库的使用及工程模板的建立 STM32学习之旅③ 从点灯到代码移植 STM32学习之旅④ USART串口和上位机通信 ...
最新文章
- mysql 数据库乱码
- python可视化界面工具_8个流行的 Python可视化工具包,你喜欢哪个?
- dwz ajax session超时跳转登录页(struts2自定义拦截器)
- CDH6.3.2默认管理端口是7180,HDFS相关端口
- Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
- mac eclipse tomcat mysql_mac下使用eclipse+tomcat+mysql开发 j2ee(一)
- 20155234 2016-2017-2 《Java程序设计》第5周学习总结
- 类的构造函数和析构函数、默认构造函数
- 未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
- 【CSP201803-1	】跳一跳,简单模拟
- OJ 21658::Monthly Expense(二分搜索+最小化最大值)
- java 克隆对象_Java中克隆(Clone)一个对象
- Postaman 报错:Could not get the lock, quitting
- android service录音,android录音并上传至服务器
- mailgun php版本,php – Mailgun发送带附件的邮件
- 拓嘉启远:定制类的商品如何处理退款
- OSChina 周四乱弹 ——今天家里只有我和女室友,我想……
- 江苏高考时间2021成绩查询,2021年江苏高考成绩什么时候出来 公布时间
- 光伏扶贫项目指标下达 如何严把光伏质量关?
- 记录各个七七八八的输入 持续更新中
热门文章
- 文件服务器 小文件,小型文件服务器
- 查看端口状态及端口占用情况
- 电脑连上网络,但是上不了网,IP变成了169.254.X.X问题解决!!!
- 支付宝怎么做风险控制?
- 【Windows】【Linux】---- Java证书导入
- 结构建模设计——Solidworks软件之装配体操作基本总结二(装配体内编辑零件、新建零件、标准配合操作)
- Chapter007-FPGA学习之IIC总线EEPROM读取
- java doc转为pdf_Java利用openoffice将doc、docx转为pdf实例代码
- 汇川plc可以用C语言吗,汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解...
- Android学习屏幕适配技能包