赞
踩
函数名 | 描述 |
---|---|
TIM_DeInit | 将外设 TIMx 寄存器重设为缺省值 |
TIM_TimeBaseInit | 根据TIM_TimeBaseInitStruct 中指定的参数初始化TIMx 的时间基数单位 |
TIM_OCInit | 根据 TIM_OCInitStruct 中指定的参数初始化外设 TIMx |
TIM_ICInit | 根据 TIM_ICInitStruct 中指定的参数初始化外设 TIMx |
TIM_TimeBaseStructInit | 把 TIM_TimeBaseInitStruct 中的每一个参数按缺省值填入 |
TIM_OCStructInit | 把 TIM_OCInitStruct 中的每一个参数按缺省值填入 |
TIM_ICStructInit | 把 TIM_ICInitStruct 中的每一个参数按缺省值填入 |
TIM_Cmd | 使能或者失能 TIMx 外设 |
TIM_ITConfig | 使能或者失能指定的 TIM 中断 |
TIM_DMAConfig | 设置 TIMx 的 DMA 接口 |
TIM_DMACmd | 使能或者失能指定的 TIMx 的 DMA 请求 |
TIM_InternalClockConfig | 设置 TIMx 内部时钟 |
TIM_ITRxExternalClockConfig | 设置 TIMx 内部触发为外部时钟模式 |
TIM_TIxExternalClockConfig | 设置 TIMx 触发为外部时钟 |
TIM_ETRClockMode1Config | 配置 TIMx 外部时钟模式 1 |
TIM_ETRClockMode2Config | 配置 TIMx 外部时钟模式 2 |
TIM_ETRConfig | 配置 TIMx 外部触发 |
TIM_SelectInputTrigger | 选择 TIMx 输入触发源 |
TIM_PrescalerConfig | 设置 TIMx 预分频 |
TIM_CounterModeConfig | 设置 TIMx 计数器模式 |
TIM_ForcedOC1Config | 置 TIMx 输出 1 为活动或者非活动电平 |
TIM_ForcedOC2Config | 置 TIMx 输出 2 为活动或者非活动电平 |
TIM_ForcedOC3Config | 置 TIMx 输出 3 为活动或者非活动电平 |
TIM_ForcedOC4Config | 置 TIMx 输出 4 为活动或者非活动电平 |
TIM_ARRPreloadConfig | 使能或者失能 TIMx 在 ARR 上的预装载寄存器 |
TIM_SelectCCDMA | 选择 TIMx 外设的捕获比较 DMA 源 |
TIM_OC1PreloadConfig | 使能或者失能 TIMx 在 CCR1 上的预装载寄存器 |
TIM_OC2PreloadConfig | 使能或者失能 TIMx 在 CCR2 上的预装载寄存器 |
TIM_OC3PreloadConfig | 使能或者失能 TIMx 在 CCR3 上的预装载寄存器 |
TIM_OC4PreloadConfig | 使能或者失能 TIMx 在 CCR4 上的预装载寄存器 |
TIM_OC1FastConfig | 设置 TIMx 捕获比较 1 快速特征 |
TIM_OC2FastConfig | 设置 TIMx 捕获比较 2 快速特征 |
TIM_OC3FastConfig | 设置 TIMx 捕获比较 3 快速特征 |
TIM_OC4FastConfig | 设置 TIMx 捕获比较 4 快速特征 |
TIM_ClearOC1Ref | 在一个外部事件时清除或者保持 OCREF1 信号 |
TIM_ClearOC2Ref | 在一个外部事件时清除或者保持 OCREF2 信号 |
TIM_ClearOC3Ref | 在一个外部事件时清除或者保持 OCREF3 信号 |
TIM_ClearOC4Ref | 在一个外部事件时清除或者保持 OCREF4 信号 |
TIM_UpdateDisableConfig | 使能或者失能 TIMx 更新事件 |
TIM_EncoderInterfaceConfig | 设置 TIMx 编码界面 |
TIM_GenerateEvent | 设置 TIMx 事件由软件产生 |
TIM_OC1PolarityConfig | 设置 TIMx 通道 1 极性 |
TIM_OC2PolarityConfig | 设置 TIMx 通道 2 极性 |
TIM_OC3PolarityConfig | 设置 TIMx 通道 3 极性 |
TIM_OC4PolarityConfig | 设置 TIMx 通道 4 极性 |
TIM_UpdateRequestConfig | 设置 TIMx 更新请求源 |
TIM_SelectHallSensor | 使能或者失能 TIMx 霍尔传感器接口 |
TIM_SelectOnePulseMode | 设置 TIMx 单脉冲模式 |
TIM_SelectOutputTrigger | 选择 TIMx 触发输出模式 |
TIM_SelectSlaveMode | 选择 TIMx 从模式 |
TIM_SelectMasterSlaveMode | 设置或者重置 TIMx 主/从模式 |
TIM_SetCounter | 设置 TIMx 计数器寄存器值 |
TIM_SetAutoreload | 设置 TIMx 自动重装载寄存器值 |
TIM_SetCompare1 | 设置 TIMx 捕获比较 1 寄存器值 |
TIM_SetCompare2 | 设置 TIMx 捕获比较 2 寄存器值 |
TIM_SetCompare3 | 设置 TIMx 捕获比较 3 寄存器值 |
TIM_SetCompare4 | 设置 TIMx 捕获比较 4 寄存器值 |
TIM_SetIC1Prescaler | 设置 TIMx 输入捕获 1 预分频 |
TIM_SetIC2Prescaler | 设置 TIMx 输入捕获 2 预分频 |
TIM_SetIC3Prescaler | 设置 TIMx 输入捕获 3 预分频 |
TIM_SetIC4Prescaler | 设置 TIMx 输入捕获 4 预分频 |
TIM_SetClockDivision | 设置 TIMx 的时钟分割值 |
TIM_GetCapture1 | 获得 TIMx 输入捕获 1 的值 |
TIM_GetCapture2 | 获得 TIMx 输入捕获 2 的值 |
TIM_GetCapture3 | 获得 TIMx 输入捕获 3 的值 |
TIM_GetCapture4 | 获得 TIMx 输入捕获 4 的值 |
TIM_GetCounter | 获得 TIMx 计数器的值 |
TIM_GetPrescaler | 获得 TIMx 预分频值 |
TIM_GetFlagStatus | 检查指定的 TIM 标志位设置与否 |
TIM_ClearFlag | 清除 TIMx 的待处理标志位 |
TIM_GetITStatus | 检查指定的 TIM 中断发生与否 |
TIM_ClearITPendingBit | 清除 TIMx 的中断待处理位 |
属性 | 值 |
---|---|
函数名 | TIM_DeInit |
函数原形 | void TIM_DeInit(TIM_TypeDef* TIMx) |
功能描述 | 将外设 TIMx 寄存器重设为缺省值 |
输入参数 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | RCC_APB1PeriphClockCmd() |
例 | TIM_DeInit(TIM2); |
属性 | 值 |
---|---|
函数名 | TIM_TimeBaseInit |
函数原形 | void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) |
功能描述 | 根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位 |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIMTimeBase_InitStruct:指向结构 TIM_TimeBaseInitTypeDef 的指针,包含了 TIMx 时间基数单位的配置信息 |
参阅 | Section:TIM_TimeBaseInitTypeDef 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
属性 | 值 |
---|---|
描述 | TIM_ClockDivision |
TIM_CKD_DIV1 | TDTS = Tck_tim |
TIM_CKD_DIV2 | TDTS = 2Tck_tim |
TIM_CKD_DIV4 | TDTS = 4Tck_tim |
TIM_CounterMode | 描述 |
---|---|
TIM_CounterMode_Up | TIM 向上计数模式 |
TIM_CounterMode_Down | TIM 向下计数模式 |
TIM_CounterMode_CenterAligned1 | TIM 中央对齐模式 1 计数模式 |
TIM_CounterMode_CenterAligned2 | TIM 中央对齐模式 2 计数模式 |
例:
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0xF; TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
属性 | 值 |
---|---|
函数名 | TIM_OCInit |
函数原形 | void TIM_OCInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) |
功能描述 | 根据 TIM_OCInitStruct 中指定的参数初始化外设 TIMx |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,包含了 TIMx 时间基数单位的配置信息 |
参阅 | Section:TIM_OCInitTypeDef 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
TIM_OCMode | 描述 |
---|---|
TIM_OCMode_Timing | TIM 输出比较时间模式 |
TIM_OCMode_Active | TIM 输出比较主动模式 |
TIM_OCMode_Inactive | TIM 输出比较非主动模式 |
TIM_OCMode_Toggle | TIM 输出比较触发模式 |
TIM_OCMode_PWM1 | TIM 脉冲宽度调制模式 1 |
TIM_OCMode_PWM2 | TIM 脉冲宽度调制模式 2 |
TIM_Channel | 描述 |
---|---|
TIM_Channel_1 | 使用 TIM 通道 1 |
TIM_Channel_2 | 使用 TIM 通道 2 |
TIM_Channel_3 | 使用 TIM 通道 3 |
TIM_Channel_4 | 使用 TIM 通道 4 |
TIM_OCPolarity | 描述 |
---|---|
TIM_OCPolarity_High | TIM 输出比较极性高 |
TIM_OCPolarity_Low | TIM 输出比较极性低 |
例:
/* Configures the TIM2 Channel1 in PWM Mode */ TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_Channel = TIM_Channel_1; TIM_OCInitStructure.TIM_Pulse = 0x3FFF; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInit(TIM2, & TIM_OCInitStructure);
属性 | 值 |
---|---|
函数名 | TIM_OCInit |
函数原形 | void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)TIM_OCInitStruct) |
功能描述 | 根据 TIM_ICInitStruct 中指定的参数初始化外设 TIMx |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIM_ICInitStruct:指向结构 TIM_ICInitTypeDef 的指针,包含了 TIMx 的配置信息 |
参阅 | Section:TIM_ICInitTypeDef 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* The following example illustrates how to configure the TIM2 in PWM Input mode : The external signal is connected to TIM2 CH1 pin, the Rising edge is used as active edge, the TIM2 CCR1 is used to compute the frequency value the TIM2 CCR2 is used to compute the duty cycle value */
TIM_DeInit(TIM2);
TIM_ICStructInit(&TIM_ICInitStructure); TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_PWMI; TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM2, &TIM_ICInitStructure);
属性 | 值 |
---|---|
函数名 | TIM_TimeBaseStructInit |
函数原形 | void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) |
功能描述 | 把 TIM_TimeBaseInitStruct 中的每一个参数按缺省值填入 |
输入参数 | TIM_TimeBaseInitStruct:指向结构 TIM_TimeBaseInitTypeDef 的指针,待初始化 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
成员 | 缺省值 |
---|---|
TIM_Period | TIM_Period_Reset_Mask |
TIM_Prescaler | TIM_Prescaler_Reset_Mask |
TIM_CKD | TIM_CKD_DIV1 |
TIM_CounterMode | TIM_CounterMode_Up |
例:
/* The following example illustrates how to initialize a TIM_BaseInitTypeDef structure */
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_TimeBaseStructInit(& TIM_TimeBaseInitStructure);
属性 | 值 |
---|---|
函数名 | TIM_OCStructInit |
函数原形 | void TIM_TimeBaseStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct) |
功能描述 | 把 TIM_OCInitStruct 中的每一个参数按缺省值填入 |
输入参数 | TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,待初始化 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
成员 | 缺省值 |
---|---|
TIM_OCMode | TIM_OCMode_Timing |
TIM_Channel | TIM_Channel_1 |
TIM_Pulse | TIM_Pulse_Reset_Mask |
TIM_OCPolarity | TIM_OCPolarity_High |
例:
/* The following example illustrates how to initialize a TIM_OCInitTypeDef structure */
TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCStructInit(& TIM_OCInitStructure);
属性 | 值 |
---|---|
函数名 | TIM_ICStructInit |
函数原形 | void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct) |
功能描述 | 把 TIM_ICInitStruct 中的每一个参数按缺省值填入 |
输入参数 | TIM_ICInitStruct:指向结构 TIM_ICInitTypeDef 的指针,待初始化 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
成员 | 缺省值 |
---|---|
TIM_ICMode | TIM_ICMode_ICAP |
TIM_Channel | TIM_Channel_1 |
TIM_ICPolarity | TIM_ICPolarity_Rising |
TIM_ICSelection | TIM_ICSelection_DirectTI |
TIM_ICPrescaler | TIM_ICPSC_DIV1 |
TIM_ICFilter | TIM_ICFilter_Mask |
属性 | 值 |
---|---|
函数名 | TIM_Cmd |
函数原形 | void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) |
功能描述 | 使能或者失能 TIMx 外设 |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | NewState: 外设 TIMx 的新状态 |
这个参数可以取:ENABLE 或者 DISABLE | |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:/* Enables the TIM2 counter */ TIM_Cmd(TIM2, ENABLE);
属性 | 值 |
---|---|
函数名 | TIM_ITConfig |
函数原形 | void TIM_ITConfig(TIM_TypeDef* TIMx, u16 TIM_IT, FunctionalState NewState) |
功能描述 | 使能或者失能指定的 TIM 中断 |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIM_IT:待使能或者失能的 TIM 中断源 |
参阅 Section:TIM_IT 查阅更多该参数允许取值范围 | |
输入参数 3 | NewState:TIMx 中断的新状态 |
这个参数可以取:ENABLE 或者 DISABLE | |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
TIM_IT | 描述 |
---|---|
TIM_IT_Update | TIM 中断源 |
TIM_IT_CC1 | TIM 捕获/比较 1 中断源 |
TIM_IT_CC2 | TIM 捕获/比较 2 中断源 |
TIM_IT_CC3 | TIM 捕获/比较 3 中断源 |
TIM_IT_CC4 | TIM 捕获/比较 4 中断源 |
TIM_IT_Trigger | TIM 触发中断源 |
例:/* Enables the TIM2 Capture Compare channel 1 Interrupt source */ TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
函数名 | TIM_DMAConfig |
---|---|
函数原形 | void TIM_DMAConfig(TIM_TypeDef* TIMx, u8 TIM_DMABase, u16 TIM_DMABurstLength) |
功能描述 | 设置 TIMx 的 DMA 接口 |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIM_DMABase:DMA 传输起始地址 |
参阅 Section:TIM_DMABase 查阅更多该参数允许取值范围 | |
输入参数 3 | TIM_DMABurstLength:DMA 连续传送长度 |
参阅 Section:TIM_DMABurstLength 查阅更多该参数允许取值范围 | |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
TIM_DMABase | 描述 |
---|---|
TIM_DMABase_CR1 | TIM CR1 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CR2 | TIM CR2 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_SMCR | TIM SMCR 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_DIER | TIM DIER 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_SR | TIM SR 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_EGR | TIM EGR 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCMR1 | TIM CCMR1 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCMR2 | TIM CCMR2 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCER | TIM CCER 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CNT | TIM CNT 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_PSC | TIM PSC 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_ARR | TIM APR 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCR1 | TIM CCR1 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCR2 | TIM CCR2 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCR3 | TIM CCR3 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_CCR4 | TIM CCR4 寄存器作为 DMA 传输起始地址 |
TIM_DMABase_DCR | TIM DCR 寄存器作为 DMA 传输起始地址 |
TIM_DMABurstLength | 描述 |
---|---|
TIM_DMABurstLength_1Byte | TIM DMA 连续传送长度 1 字 |
TIM_DMABurstLength_2Bytes | TIM DMA 连续传送长度 2 字 |
TIM_DMABurstLength_3Bytes | TIM DMA 连续传送长度 3 字 |
TIM_DMABurstLength_4Bytes | TIM DMA 连续传送长度 4 字 |
TIM_DMABurstLength_5Bytes | TIM DMA 连续传送长度 5 字 |
TIM_DMABurstLength_6Bytes | TIM DMA 连续传送长度 6 字 |
TIM_DMABurstLength_7Bytes | TIM DMA 连续传送长度 7 字 |
TIM_DMABurstLength_8Bytes | TIM DMA 连续传送长度 8 字 |
TIM_DMABurstLength_9Bytes | TIM DMA 连续传送长度 9 字 |
TIM_DMABurstLength_10Bytes | TIM DMA 连续传送长度 10 字 |
TIM_DMABurstLength_11Bytes | TIM DMA 连续传送长度 11 字 |
TIM_DMABurstLength_12Bytes | TIM DMA 连续传送长度 12 字 |
TIM_DMABurstLength_13Bytes | TIM DMA 连续传送长度 13 字 |
TIM_DMABurstLength_14Bytes | TIM DMA 连续传送长度 14 字 |
TIM_DMABurstLength_15Bytes | TIM DMA 连续传送长度 15 字 |
TIM_DMABurstLength_16Bytes | TIM DMA 连续传送长度 16 字 |
TIM_DMABurstLength_17Bytes | TIM DMA 连续传送长度 17 字 |
TIM_DMABurstLength_18Bytes | TIM DMA 连续传送长度 18 字 |
例:/* Configures the TIM2 DMA Interface to transfer 1 byte and to use the CCR1 as base address */ TIM_DMAConfig(TIM2, TIM_DMABase_CCR1, TIM_DMABurstLength_1Byte)
函数名 | TIM_DMACmd |
---|---|
函数原形 | void TIM_DMACmd(TIM_TypeDef* TIMx, u16 TIM_DMASource, FunctionalState Newstate) |
功能描述 | 使能或者失能指定的 TIMx 的 DMA 请求 |
输入参数 1 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输入参数 2 | TIM_DMASource:待使能或者失能的 TIM 中断源 |
输入参数 3 | NewState:DMA 请求的新状态 |
这个参数可以取:ENABLE 或者 DISABLE | |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
TIM_DMASource | 描述 |
---|---|
TIM_DMA_Update | TIM 更新事件的 DMA 请求 |
TIM_DMA_CC1 | TIM 捕获/比较 1 事件的 DMA 请求 |
TIM_DMA_CC2 | TIM 捕获/比较 2 事件的 DMA 请求 |
TIM_DMA_CC3 | TIM 捕获/比较 3 事件的 DMA 请求 |
TIM_DMA_CC4 | TIM 捕获/比较 4 事件的 DMA 请求 |
TIM_DMA_COM | TIM COM 事件的 DMA 请求 |
TIM_DMA_Trigger | TIM 触发事件的 DMA 请求 |
函数名 | TIM_InternalClockConfig |
---|---|
函数原形 | void TIM_DMACmd(TIM_TypeDef* TIMx, u16 TIM_DMASource, FunctionalState Newstate) |
功能描述 | 设置 TIMx 内部时钟 |
输入参数 | TIMx:x 可以是 2,3 或者 4,来选择 TIM 外设 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Selects the internal clock for TIM2 */ TIM_InternalClockConfig(TIM2);
修改时间 | 修改说明 |
---|---|
2024年3月27日 | 第一次发布,介绍了19 STM32标准库函数 之 通用定时器(TIM)-- A – 所有函数的介绍及使用 |
以上就是 19 STM32标准库函数 之 通用定时器(TIM)-- A – 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。