欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【TOLIN】第二章|软件工程模板搭建

程序员文章站 2022-05-02 10:40:00
...

【TOLIN】第二章|软件工程模板搭建 

        ↑ 点击上方,关注“Tkwer望远镜”

                                                      【TOLIN】第二章|软件工程模板搭建

作者:Tkwer

公众号:Tkwer望远镜

 

使用STM32CubeMX生成工程模板

    还没熟悉过STM32CubeMX的同学,可能要先通过互联网了解怎么使用。我们教程不会具体到每一个细节,很抱歉。

   

【TOLIN】第二章|软件工程模板搭建

    官方网站介绍:STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm Cortex-M core or a partial Linux Device Tree for Arm Cortex-A core), through a step-by-step process.  总结,STM32CubeMX就是生成STM32软件工程模板图形化工具。

    下面就是进行Pin Configuration

【TOLIN】第二章|软件工程模板搭建

    Clock Configuration

【TOLIN】第二章|软件工程模板搭建

    Project Manager

【TOLIN】第二章|软件工程模板搭建

【TOLIN】第二章|软件工程模板搭建

生成MDK工程

【TOLIN】第二章|软件工程模板搭建

 

移植正点原子的SYSTEM文件夹

    接触过STM32的各位,对于正点原子应该是不会陌生的。笔者第一块STM32的学习板也正是正点原子的。受其影响,和兼容一部分正点原子程序的移植,SYSTEM这个文件夹就显得很重要。SYSTEM这个文件夹主要包含了delay文件,sys文件,usart文件。里面有我们经常用的延时函数,串口打印函数。

    将该文件夹粘贴到工程文件夹中

 

【TOLIN】第二章|软件工程模板搭建

 

    工程中添加Src与Inc

【TOLIN】第二章|软件工程模板搭建

【TOLIN】第二章|软件工程模板搭建

    第一次编译过后肯定是会报错的,因为本来工程就含有usart.c和usart.h,后来我们又添加一组,删掉原来的重新编译。

在main.c中做以下修改:

1/* USER CODE BEGIN Includes */
2#include "usart.h"
3#include "sys.h"
4#include "delay.h"
5/* USER CODE END Includes */

 

 1  /* USER CODE BEGIN SysInit */
 2    delay_init(84);
 3    uart_init(115200);
 4  /* USER CODE END SysInit */
 5
 6  /* Initialize all configured peripherals */
 7  MX_GPIO_Init();
 8    //MX_USART1_UART_Init();//注释
 9  MX_USB_DEVICE_Init();
10  /* USER CODE BEGIN 2 */
11    int cnt = 0;
12  /* USER CODE END 2 */

 

 1  /* USER CODE BEGIN WHILE */
 2  while (1)
 3  {
 4    /* USER CODE END WHILE */
 5        printf("Hello,World!,%d\r\n",cnt);
 6        delay_ms(1000);
 7        cnt++;
 8    /* USER CODE BEGIN 3 */
 9  }
10  /* USER CODE END 3 */

效果如下:

【TOLIN】第二章|软件工程模板搭建

【TOLIN】第二章|软件工程模板搭建

证明正点原子SYSTEM文件夹移植成功。

点亮OLED,显示“Hello,world!”

    OLED是一个电子手表用的显示屏,比较简单且低功耗,标准IIC协议和驱动是SSD1306。我们提前先把OLED驱动文件写好了,直接复制文件夹到工程目录中,且在工程中添加即可使用。

 

【TOLIN】第二章|软件工程模板搭建

 

1/* USER CODE BEGIN Includes */
2#include "usart.h"
3#include "sys.h"
4#include "delay.h"
5#include "SSD1306_IIC.h"
6/* USER CODE END Includes */

 

1  /* USER CODE BEGIN SysInit */
2    delay_init(84);
3    uart_init(115200);
4    OLED_Init();
5    OLED_P8x16Str(0,1,"Hello,world!");
6  /* USER CODE END SysInit */

    显示如下:

【TOLIN】第二章|软件工程模板搭建

PS:点灯程序过于简单那,不写了==

END

 

【TOLIN】第二章|软件工程模板搭建

公众号ID:Tkwer望远镜

提供TOLIN核心板软件工程,公众号内回复即可获取:TOLIN_Template