STM32 水质水位检测项目 (调试模块)和(延时模块)

分层

通过软件架构可以进行分层,驱动层Driver、接口层Interface、应用层App、公共层Common、用户层,分别创建这几个层级文件夹

调试模块:(涉及到驱动层和公共层)

1 打开Driver文件夹

2 将之前的USART文件直接复制到新项目的Driver文件夹中,记得keil中添加.c和.h文件

STM32 案例计算机和串口通讯及学习方法和重映像printf函数(逻辑查询以及寄存器代码如何书写)_stm32库函数串口代码-CSDN博客

printf函数

printf函数可以用来调试,但是随着代码的增多,为了更加方便,可以用条件编译来进行编辑

1 打开Common文件夹

2 新建两个文件debug.c和debug.h文件,用来调试

debug.h

新拓展:

format------格式化的占位符

...------------定义可变的参数

strrchr------从字符串最右边往左边寻找目标字符,找到后返回目标字符的地址函数

##------------连接前后可以用来省略,

FILE--文件路径及其

LINE--行号

cs 复制代码
#ifndef __DEBUG_H__
#define __DEBUG_H__

#include "usart1.h"

#include <stdarg.h>
#include <string.h>

//为了方便调试,定义一个宏进行条件编译
#define DEBUG

#ifdef DEBUG //调试Debug)模式

//从__FILE__中提取文件名
#define FLIENAME (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)

#define dubug_init() Debug_Init()
#define debug_printf(format, ...) printf("[%s:%d]--" format, FLIENAME, __LINE__, ##__VA_ARGS__)
#define debug_printfln(format, ...) printf("[%s:%d]--" format "\r\n", FLIENAME, __LINE__, ##__VA_ARGS__)

#else   //发布(Release)模式 

#define dubug_init()
#define debug_printf(format,...)
#define debug_printfln(format,...)

#endif



//初始化
void Debug_Init(void);

#endif /* __DEBUG_H__ */

debug.c

cs 复制代码
#include "debug.h"

void Debug_Init(void){
    Usart1_Init();
}

延迟模块:(公共层)

1 打开Common文件夹

2 用之前滴答定时器的两个文件delay.c 和delay.h 放入新建立的Common文件夹中

流程:系统滴答定时器中的装载值LOAD值是向下计数,VAL计数器值清零它会自动装载LOAD值进行向下计数,每过一个时钟VAL减1。配置采用系统时钟源

STM32 创建和书写delay.c 和delay.h_stm32 delay.c-CSDN博客

相关推荐
DIY机器人工房7 分钟前
嵌入式面试题:电容滤波,低频高频谁来滤?放置顺序怎么定?
stm32·单片机·嵌入式硬件·diy机器人工房
学习路上_write14 分钟前
嵌入式系统bringup指南:软硬件调试
c语言·单片机·嵌入式硬件
磨十三2 小时前
ARM Cortex-M 系列 MCU:内核、指令、异常与中断解析
arm开发·单片机·嵌入式硬件
罗汉松(山水白河)3 小时前
关于串口与UDP通讯的实验
单片机·嵌入式硬件·网络协议·udp·tcp·串口、
d111111111d5 小时前
STM32外设--SPI读取W25Q64(学习笔记)硬件SPI
笔记·stm32·单片机·嵌入式硬件·学习
pq113_66 小时前
开源软件学习笔记 - 移植SFUD
笔记·stm32·sfud·ft4222h
steins_甲乙7 小时前
stm32入门篇(6)
stm32·单片机·嵌入式硬件
刻BITTER16 小时前
用EXCEL 将单色屏幕的Bitmap 字模数据还原回图形
单片机·嵌入式硬件·excel·arduino
撬动未来的支点18 小时前
【嵌入式】MCU和MPU的区别
单片机·嵌入式硬件
一支闲人19 小时前
CAN:STM32 CAN外设2
stm32·单片机·基础知识·can协议·stm外设