定义在结构体里面的宏

/*
1、宏定义在结构体里面,只是方便代码的阅读,一般这种情况,大部分是结构体里面有标志量,方便阅读。
2、在结构体里面定义一个宏,在结构体外面也可以定义同样的宏,如果两个宏的内容不一样,那么在使用的地方,哪个宏近就使用哪个。(编译会有警告)
    宏就是替换,从上面开始,一直往后面替换。如果宏新定义了,那么就使用宏的新值继续替换。
*/

#include <stdio.h>
 
struct TestMacro
{
    int a;
    int b;
#define MACRO    10
 
};
 
void func()
{
    int num = 0;
    num = MACRO;
    printf("func=%d\n",num);
 
}
 
#define MACRO    20
 
int main(int argc, char *argv[])
{
    int num = 0;
    num = MACRO;
    func();
    printf("main=%d\n",num);
 
    return 0;
}

执行结果:

编译告警:

 

stm32f10x_tim.h 头文件中声明了一系列定时器相关的库函数、宏定义结构体,下面是一些常用的库函数及相关声明和使用方法: 1. 定时器初始化函数 `TIM_TimeBaseInit()`: ```c void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); ``` 该函数用于初始化定时器的基本参数,包括时钟分频、计数值、计数模式等,具体的参数说明可以参考 ST 官方提供的文档或者例程。例如,下面的代码初始化 TIM2 定时器为 1ms 的计时模式: ```c TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 999; // 计数值 TIM_TimeBaseStructure.TIM_Prescaler = 71; // 时钟分频 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); ``` 2. 定时器中断配置函数 `TIM_ITConfig()`: ```c void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState); ``` 该函数用于配置定时器中断的使能状态,可以选择开启或关闭定时器溢出中断、更新中断等。例如,下面的代码开启 TIM2 定时器的溢出中断: ```c TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); ``` 3. 定时器中断状态获取函数 `TIM_GetITStatus()`: ```c ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT); ``` 该函数用于获取定时器中断的状态,例如判断定时器是否发生了溢出中断。例如,下面的代码判断 TIM2 定时器是否发生了溢出中断: ```c if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET) { // 定时器溢出中断处理代码 ... } ``` 4. 定时器计数值获取函数 `TIM_GetCounter()`: ```c uint16_t TIM_GetCounter(TIM_TypeDef* TIMx); ``` 该函数用于获取定时器的当前计数值,例如用于测量时间间隔。例如,下面的代码获取 TIM2 定时器的当前计数值: ```c uint16_t count = TIM_GetCounter(TIM2); ``` 5. 定时器计数值设置函数 `TIM_SetCounter()`: ```c void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter); ``` 该函数用于设置定时器的当前计数值,例如用于复位定时器计数器。例如,下面的代码将 TIM2 定时器的计数值清零: ```c TIM_SetCounter(TIM2, 0); ``` 以上是一些常用的定时器库函数及其声明和使用方法,如果需要使用其他的库函数,可以查看 stm32f10x_tim.h 头文件中的声明,并参考官方文档或者例程进行使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值