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

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

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

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

stm32cubmx

用cubmx可以通过直观的方式直接配置管脚时钟并生成代码,不必再手动通过写代码的方式进行使能配置,基于HAL库。
下载安装之后新建工程,MCU即微处理器,所以点第一个新建工程。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第1张图片
其次选择对应的板子,可以直接在左边搜索,点击后会出现相应的芯片信息,还提供相应的资源及数据手册,选好后点击start project即可开始。
我使用的是F103C8T6,但是发现只有C6没有C8。在相应数据手册的第7章,我们可以知道芯片对应数字的含义,8和6只是flash的size不同,只要不超过6的size,用两种芯片是一样的。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第2张图片
之后可以对芯片管脚进行一系列的配置,单击管脚可以看到管脚可以用做什么,在页面左边也可以直接找到GPIO,UARST1等直接配置。
之后根据需要配置时钟。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第3张图片
写文件名并选择存储路径,尽量不要有中文。
project manager中要注意更改IDE,因为使用的是keil,要选择如图所示。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第4张图片
另外,code generator中,第一个是把库中所有的函数都加入工程,第二个是把用到的加入,一般选第二个即可。选完后点击右上角生成代码。代码存储在之前选择的路径中。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第5张图片
注意cubmx生成的代码都是基于HAL库而不是标准库,b站正点原子的讲解都是标准库。

keil

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

stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第6张图片
注意要生成hex文件程序才可以到proteus里仿真。

proteus

打开proteus,新建工程,改名称路径,之后要选择创建固件库(生成代码)并进行相应选择,之后完成页面便会出现相应的板子。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第7张图片
之后双击页面左边device空白区域可以对器件进行选择。连接好电路图即可。
双击板子点击文件夹找到keil生成的hex文件,即可以把keil编写的程序放到板子里。
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第8张图片
最后点击页面左下角可以开始停止结束仿真。

一个简单的实例

(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中cubmx+keil+proteus+虚拟串口+串口助手的使用_第9张图片
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用_第10张图片
注意,以上的实例是在其他都配置好了的情况下的。

虚拟串口+串口调试

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

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

你可能感兴趣的:(stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用)