【TOLIN】第二章|软件工程模板搭建
【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
上一篇: 需求分析
下一篇: 软件工程(速成)——第二章 可行性研究