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博客

相关推荐
-凌凌漆-2 小时前
【嵌入式】FreeRTOS串口等待vTaskDelay()
嵌入式硬件
小昭在路上……2 小时前
GPIO端口引脚(位域)打包技巧笔记
单片机·嵌入式硬件
是翔仔呐2 小时前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
悠哉悠哉愿意2 小时前
【单片机复习笔记】第十六届省赛复盘
笔记·单片机·嵌入式硬件
IT方大同2 小时前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
是翔仔呐3 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
沐欣工作室_lvyiyi4 小时前
基于单片机的智能浴室(论文+源码)
stm32·单片机·嵌入式硬件·智能浴室
二本咕咕-机械转码4 小时前
STM32是怎么跑起来的?启动流程 + 时钟树一次讲透(面试高频)
stm32·嵌入式硬件·面试
撩妹小狗4 小时前
揭秘舵机精准控制的PWM奥秘
单片机·嵌入式硬件
Heartache boy4 小时前
野火STM32_HAL库版课程笔记-TIM通道输出应用之PWM实现呼吸灯
笔记·stm32·单片机·嵌入式硬件