查看原文
其他

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

Tkwer Tkwer望远镜 2021-01-31


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

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

作者:Tkwer

公众号:Tkwer望远镜


使用STM32CubeMX生成工程模板

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

   

    官方网站介绍: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

    Clock Configuration

    Project Manager

生成MDK工程


移植正点原子的SYSTEM文件夹

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

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


    工程中添加Src与Inc

    第一次编译过后肯定是会报错的,因为本来工程就含有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 */

效果如下:

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

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

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

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 */

    显示如下:

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

END


公众号ID:Tkwer望远镜
扫码关注最新动态

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

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存