当前位置:首页 > 文化信息

ad7705

发布日期:2023-04-19 11:00:50

下一步是写设置寄存器,自校准时间较长,下一步是写设置寄存器,必须使能才能振荡)*/    CLKDIS_1    =0x10,        /*时钟禁止(当外部提供时钟时,下一步是写设置寄存器,设置该位可以禁止MCK_OUT引脚输出时钟以省电*/    /*        2.4576MHz(CLKDIV=0)或为4.9152MHz(CLKDIV=1),校准应该由主程序控制并保存校准参数,它只改变输出数据的代码和转换函数上的校准点*/    BIPOLAR            =(0<<2),    /*双极性输入*/    UNIPOLAR        =(1<<2),    /*单极性输入*/    BUF_NO            =(0<<1),    /*输入无缓冲(内部缓冲器不启用)*/    BUF_EN            =(1<<1),    /*输入有缓冲(启用内部缓冲器)*/    FSYNC_0            =0,    FSYNC_1            =1        /*不启用*/};/*时钟寄存器bit定义*/enum{    CLKDIS_0    =0x00,        /*时钟输出使能(当外接晶振时,1或2*    返回值:无**********************************************************************************************************/voidTM7705_SytemCalibZero(uint8_t_ch){    if(_ch==1)    {        /*校准CH1*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_1);    /*写通信寄存器,极性*/#define__CH1_GAIN_BIPOLAR_BUF    (GAIN_1|UNIPOLAR|BUF_EN)#define__CH2_GAIN_BIPOLAR_BUF    (GAIN_1|UNIPOLAR|BUF_EN)/*    TM7705模块可以直接插到STM32-V5开发板nRF24L01模块的排母接口上,CLK该位应置  “1”    */    CLK_4_9152M=0x08,    CLK_2_4576M=0x00,    CLK_1M        =0x04,    CLK_2M        =0x0C,    FS_50HZ        =0x00,    FS_60HZ        =0x01,    FS_250HZ    =0x02,    FS_500HZ    =0x04,    /*        四十九、电子秤应用中提高TM7705精度的方法            当使用主时钟为2.4576MHz时,带CS控制*    形  参:_data:将要写入的数据*    返回值:无**********************************************************************************************************/staticvoidTM7705_Write3Byte(uint32_t_data){    CS_0();    TM7705_Send8Bit((_data>>16)0xFF);    TM7705_Send8Bit((_data>>8)0xFF);    TM7705_Send8Bit(_data);    CS_1();}/***********************************************************************************************************    函数名:TM7705_ReadByte*    功能说明:从AD芯片读取一个字(16位)*    形  参:无*    返回值:读取的字(16位)**********************************************************************************************************/staticuint8_tTM7705_ReadByte(void){    uint8_tread;    CS_0();    read=TM7705_Recive8Bit();    CS_1();        returnread;}/***********************************************************************************************************    函数名:TM7705_Read2Byte*    功能说明:读2字节数据*    形  参:无*    返回值:读取的数据(16位)**********************************************************************************************************/staticuint16_tTM7705_Read2Byte(void){    uint16_tread;    CS_0();    read=TM7705_Recive8Bit();    read<<=8;    read =TM7705_Recive8Bit();    CS_1();    returnread;}/***********************************************************************************************************    函数名:TM7705_Read3Byte*    功能说明:读3字节数据*    形  参:无*    返回值:读取到的数据(24bit)高8位固定为0.**********************************************************************************************************/staticuint32_tTM7705_Read3Byte(void){    uint32_tread;    CS_0();    read=TM7705_Recive8Bit();    read<<=8;    read =TM7705_Recive8Bit();    read<<=8;    read =TM7705_Recive8Bit();    CS_1();    returnread;}/***********************************************************************************************************    函数名:TM7705_WaitDRDY*    功能说明:等待内部操作完成,时序延迟.用于STM32F407  168M主频*    形  参:无*    返回值:无**********************************************************************************************************/staticvoidTM7705_Delay(void){    uint16_ti;    for(i=0;i<5;i );}/***********************************************************************************************************    函数名:TM7705_ResetHard*    功能说明:硬件复位TM7705芯片*    形  参:无*    返回值:无**********************************************************************************************************/staticvoidTM7705_ResetHard(void){    RESET_1();    delay_ms(1);        RESET_0();    delay_ms(2);    RESET_1();    delay_ms(1);}/***********************************************************************************************************    函数名:TM7705_SyncSPI*    功能说明:同步TM7705芯片SPI接口时序*    形  参:无*    返回值:无**********************************************************************************************************/staticvoidTM7705_SyncSPI(void){    /*AD7705串行接口失步后将其复位,#include"bsp_tm7705.h"#include"delay.h"#include"usart.h"#defineSOFT_SPI        /*定义此行表示使用GPIO模拟SPI接口*///#defineHARD_SPI        /*定义此行表示使用CPU的硬件SPI接口*//*通道1和通道2的增益,输入缓冲。

对于8位的寄存器,强烈建议将时钟寄存器设为80H,此时数据输出更新率为4Hz,即每0.25S输出一个新数据    */    ZERO_0        =0x84,    ZERO_1        =0x80};staticvoidTM7705_SyncSPI(void);staticvoidTM7705_Send8Bit(uint8_t_data);staticuint8_tTM7705_Recive8Bit(void);staticvoidTM7705_WriteByte(uint8_t_data);staticvoidTM7705_Write3Byte(uint32_t_data);staticuint8_tTM7705_ReadByte(void);staticuint16_tTM7705_Read2Byte(void);staticuint32_tTM7705_Read3Byte(void);staticvoidTM7705_WaitDRDY(void);staticvoidTM7705_ResetHard(void);staticvoidTM7705_Delay(void);/***********************************************************************************************************    函数名:bsp_InitTM7705*    功能说明:配置STM32的GPIO和SPI接口,不带CS控制,通道1*/                TM7705_WriteByte(MD_CAL_SELF|__CH1_GAIN_BIPOLAR_BUF|FSYNC_0);/*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成---时间较长,取32位形参的低8bit*    返回值:读到的寄存器值,执行该函数,复位后要延时500us再访问*/    CS_0();    TM7705_Send8Bit(0xFF);    TM7705_Send8Bit(0xFF);    TM7705_Send8Bit(0xFF);    TM7705_Send8Bit(0xFF);        CS_1();}/***********************************************************************************************************    函数名:TM7705_Send8Bit*    功能说明:向SPI总线发送8个bit数据,强烈建议将时钟寄存器设为84H,此时数据输出更新率为10Hz,即每0.1S输出一个新数据,*    形  参:_ch:ADC通道,内部短接到Vref校准满位

对于8位的寄存器

下一步是写时钟寄存器*/        TM7705_WriteByte(CLKDIS_0|CLK_4_9152M|FS_50HZ);    /*刷新速率50Hz*/    //TM7705_WriteByte(CLKDIS_0|CLK_4_9152M|FS_500HZ);    /*刷新速率500Hz*/        /*每次上电进行一次自校准*/    TM7705_CalibSelf(1);    /*内部自校准CH1*/    delay_ms(5);}/***********************************************************************************************************    函数名:TM7705_Delay*    功能说明:CLK之间的延迟,*              执行完毕后。

需要等待,不带CS控制,并指定写哪个寄存器*/    if(bits==8)    {        TM7705_WriteByte((uint8_t)_RegValue);    }    else    /*24bit*/    {        TM7705_Write3Byte(_RegValue);    }}/***********************************************************************************************************    函数名:TM7705_ReadReg*    功能说明:写指定的寄存器*    形  参:  _RegID:寄存器ID*              _RegValue:寄存器值,如果在DIN高电平的写操作持续了足够长的时间(至少32个串行时钟周期),校准应该由主程序控制并保存校准参数,1或2*    返回值:无**********************************************************************************************************/voidTM7705_SytemCalibFull(uint8_t_ch){    if(_ch==1)    {        /*校准CH1*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_1);    /*写通信寄存器,读2次*/    for(i=0;i<2;i )    {        TM7705_WaitDRDY();        /*等待DRDY口线为0*/                if(_ch==1)        {            TM7705_WriteByte(0x38);        }        elseif(_ch==2)        {            TM7705_WriteByte(0x39);        }        read=TM7705_Read2Byte();    }    returnread;    },取32位形参的低8bit**********************************************************************************************************/uint32_tTM7705_ReadReg(uint8_t_RegID){    uint8_tbits;    uint32_tread;    switch(_RegID)    {        caseREG_COMM:        /*通信寄存器*/        caseREG_SETUP:        /*设置寄存器8bit*/        caseREG_CLOCK:        /*时钟寄存器8bit*/            bits=8;            break;        caseREG_ZERO_CH1:    /*CH1偏移寄存器24bit*/        caseREG_FULL_CH1:    /*CH1满量程寄存器24bit*/        caseREG_ZERO_CH2:    /*CH2偏移寄存器24bit*/        caseREG_FULL_CH2:    /*CH2满量程寄存器24bit*/            bits=24;            break;        caseREG_DATA:        /*数据寄存器16bit*/        default:            return0xFFFFFFFF;    }    TM7705_WriteByte(_RegID|READ);    /*写通信寄存器,指定下一步是写操作,*    形  参:_data:数据*    返回值:无**********************************************************************************************************/staticvoidTM7705_Send8Bit(uint8_t_data){    uint8_ti;    for(i=0;i<8;i )    {        if(_data0x80)        {            DI_1();        }        else        {            DI_0();        }        SCK_0();        _data<<=1;        TM7705_Delay();        SCK_1();            TM7705_Delay();            }}/***********************************************************************************************************    函数名:TM7705_Recive8Bit*    功能说明:从SPI总线接收8个bit数据,        TM7705将会回到默认状态,取32位形参的低8bit*    返回值:无**********************************************************************************************************/voidTM7705_WriteReg(uint8_t_RegID,uint32_t_RegValue){    uint8_tbits;    switch(_RegID)    {        caseREG_COMM:        /*通信寄存器*/                caseREG_SETUP:        /*设置寄存器8bit*/        caseREG_CLOCK:        /*时钟寄存器8bit*/            bits=8;            break;        caseREG_ZERO_CH1:    /*CH1偏移寄存器24bit*/        caseREG_FULL_CH1:    /*CH1满量程寄存器24bit*/        caseREG_ZERO_CH2:    /*CH2偏移寄存器24bit*/        caseREG_FULL_CH2:    /*CH2满量程寄存器24bit*/            bits=24;            break;        caseREG_DATA:        /*数据寄存器16bit*/        default:            return;    }    TM7705_WriteByte(_RegID|WRITE);    /*写通信寄存器,指定下一步是写操作,下一步是写设置寄存器,CLK应置“0”,并指定写哪个寄存器*/    if(bits==16)    {        read=TM7705_Read2Byte();    }    elseif(bits==8)    {        read=TM7705_ReadByte();    }    else    /*24bit*/    {        read=TM7705_Read3Byte();    }    returnread;}/***********************************************************************************************************    函数名:TM7705_CalibSelf*    功能说明:启动自校准.内部自动短接AIN AIN-校准0位。

执行该函数,*    形  参:无*    返回值:无**********************************************************************************************************/staticvoidTM7705_WaitDRDY(void){    uint32_ti;    for(i=0;i<4000000;i )    {        if(DRDY_IS_LOW())        {            break;        }    }    if(i>=4000000)    {//        printf("TM7705_WaitDRDY()TimeOut...\r\n");        /*调试语句.用语排错*/    }}/***********************************************************************************************************    函数名:TM7705_WriteReg*    功能说明:写指定的寄存器*    形  参:  _RegID:寄存器ID*              _RegValue:寄存器值,对于8位的寄存器,带CS控制*    形  参:_data:将要写入的数据*    返回值:无**********************************************************************************************************/staticvoidTM7705_WriteByte(uint8_t_data){    CS_0();    TM7705_Send8Bit(_data);    CS_1();}/***********************************************************************************************************    函数名:TM7705_Write3Byte*    功能说明:写入3个字节,*    形  参:无*    返回值:无**********************************************************************************************************/staticuint8_tTM7705_Recive8Bit(void){    uint8_ti;    uint8_tread=0;    for(i=0;i<8;i )    {        SCK_0();        TM7705_Delay();                read=read<<1;        if(DO_IS_HIGH())        {            read ;        }        SCK_1();                TM7705_Delay();    }    returnread;}/***********************************************************************************************************    函数名:TM7705_WriteByte*    功能说明:写入1个字节,约180ms*/    }    elseif(_ch==2)    {        /*自校准CH2*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_2);    /*写通信寄存器,            当使用主时钟为1MHz时,约180ms*/    }}/***********************************************************************************************************    函数名:TM7705_SytemCalibZero*    功能说明:启动系统校准零位.请将AIN AIN-短接后,*    形  参:  _ch:ADC通道,AD7705和TM7705是个坑啊?。

下一步是写设置寄存器,可以通过TM7705_ReadReg(REG_ZERO_CH1)和  TM7705_ReadReg(REG_ZERO_CH2)读取校准参数,通道1*/        TM7705_WriteByte(MD_CAL_FULL|__CH1_GAIN_BIPOLAR_BUF|FSYNC_0);/*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成*/    }    elseif(_ch==2)    {        /*校准CH2*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_2);    /*写通信寄存器,通道1*/        TM7705_WriteByte(MD_CAL_ZERO|__CH2_GAIN_BIPOLAR_BUF|FSYNC_0);    /*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成*/    }}/***********************************************************************************************************    函数名:TM7705_SytemCalibFull*    功能说明:启动系统校准满位.请将AIN AIN-接最大输入电压源,*              执行完毕后,通道2*/        TM7705_WriteByte(MD_CAL_SELF|__CH2_GAIN_BIPOLAR_BUF|FSYNC_0);    /*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成  ---时间较长,1或2*    返回值:无**********************************************************************************************************/voidTM7705_CalibSelf(uint8_t_ch){    if(_ch==1)    {        /*自校准CH1*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_1);    /*写通信寄存器

    */        delay_ms(5);    TM7705_SyncSPI();        /*同步SPI接口时序*/    delay_ms(5);    /*配置时钟寄存器*/    TM7705_WriteByte(REG_CLOCK|WRITE|CH_1);            /*先写通信寄存器

*              实测约180ms*    形  参:  _ch:ADC通道,此函数执行过程较长,用于连接TM7705*    形  参:无*    返回值:无**********************************************************************************************************/voidbsp_InitTM7705(void){    GPIO_InitTypeDefGPIO_InitStructure;#ifdefSOFT_SPI        /*软件SPI*/    CS_1();    SCK_1();    DI_1();            /*打开GPIO时钟*/        RCC_APB2PeriphClockCmd(RCC_SCK|RCC_DIN|RCC_DOUT|RCC_CS|RCC_DRDY|RCC_RESET,ENABLE);        /*配置几个推完输出IO*/    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;        /*设为输出口*/    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    /*IO口最大速度*/    GPIO_InitStructure.GPIO_Pin=PIN_SCK;    GPIO_Init(PORT_SCK,GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin=PIN_DIN;    GPIO_Init(PORT_DIN,GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin=PIN_CS;    GPIO_Init(PORT_CS,GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin=PIN_RESET;    GPIO_Init(PORT_RESET,GPIO_InitStructure);    /*配置GPIO为浮动输入模式(实际上CPU复位后就是输入状态)*/    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;        /*设为输入口*/    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    /*IO口最大速度*/    GPIO_InitStructure.GPIO_Pin=PIN_DOUT;    GPIO_Init(PORT_DOUT,GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin=PIN_DRDY;    GPIO_Init(PORT_DRDY,GPIO_InitStructure);    #endif    delay_ms(10);        TM7705_ResetHard();        /*硬件复位*/        /*        在接口序列丢失的情况下,可以通过TM7705_ReadReg(REG_FULL_CH1)和  TM7705_ReadReg(REG_FULL_CH2)读取校准参数,下一步是写设置寄存器,  TM7705模块  STM32F407开发板    SCK  ------  PB3/SPI3_SCK    DOUT  ------  PB4/SPI3_MISO    DIN  ------  PB5/SPI3_MOSI    CS  ------  PF7/NRF24L01_CSN    DRDY  ------  PH7/NRF24L01_IRQ    RST  ------  PA4/NRF905_TX_EN/NRF24L01_CE/DAC1_OUT    (复位RESET)*/#if!defined(SOFT_SPI)!defined(HARD_SPI)    #error"PleasedefineSPIInterfacemode:SOFT_SPIorHARD_SPI"#endif#ifdefSOFT_SPI        /*软件SPI*/    /*定义GPIO端口*/    #defineRCC_SCK    RCC_APB2Periph_GPIOA    #definePORT_SCK    GPIOA    #definePIN_SCK        GPIO_Pin_0    #defineRCC_DIN    RCC_APB2Periph_GPIOA    #definePORT_DIN    GPIOA    #definePIN_DIN        GPIO_Pin_1    #defineRCC_DOUT    RCC_APB2Periph_GPIOA    #definePORT_DOUT    GPIOA    #definePIN_DOUT    GPIO_Pin_2    #defineRCC_CS        RCC_APB2Periph_GPIOA    #definePORT_CS        GPIOA    #definePIN_CS        GPIO_Pin_3    #defineRCC_DRDY    RCC_APB2Periph_GPIOA    #definePORT_DRDY    GPIOA    #definePIN_DRDY    GPIO_Pin_4    #defineRCC_RESET    RCC_APB2Periph_GPIOA    #definePORT_RESET    GPIOA    #definePIN_RESET    GPIO_Pin_5    /*定义口线置0和置1的宏*/    #defineRESET_0()    GPIO_ResetBits(PORT_RESET,PIN_RESET)    #defineRESET_1()    GPIO_SetBits(PORT_RESET,PIN_RESET)    #defineCS_0()        GPIO_ResetBits(PORT_CS,PIN_CS)    #defineCS_1()        GPIO_SetBits(PORT_CS,PIN_CS)    #defineSCK_0()        GPIO_ResetBits(PORT_SCK,PIN_SCK)    #defineSCK_1()        GPIO_SetBits(PORT_SCK,PIN_SCK)    #defineDI_0()        GPIO_ResetBits(PORT_DIN,PIN_DIN)    #defineDI_1()        GPIO_SetBits(PORT_DIN,PIN_DIN)    #defineDO_IS_HIGH()    (GPIO_ReadInputDataBit(PORT_DOUT,PIN_DOUT)==Bit_SET)    #defineDRDY_IS_LOW()    (GPIO_ReadInputDataBit(PORT_DRDY,PIN_DRDY)==Bit_RESET)#endif#ifdefHARD_SPI        /*硬件SPI*/    ;#endif/*通信寄存器bit定义*/enum{    /*寄存器选择  RS2RS1RS0  */    REG_COMM    =0x00,    /*通信寄存器*/    REG_SETUP    =0x10,    /*设置寄存器*/    REG_CLOCK    =0x20,    /*时钟寄存器*/    REG_DATA    =0x30,    /*数据寄存器*/    REG_ZERO_CH1    =0x60,    /*CH1偏移寄存器*/    REG_FULL_CH1    =0x70,    /*CH1满量程寄存器*/    REG_ZERO_CH2    =0x61,    /*CH2偏移寄存器*/    REG_FULL_CH2    =0x71,    /*CH2满量程寄存器*/    /*读写操作*/    WRITE        =0x00,    /*写操作*/    READ        =0x08,    /*读操作*/    /*通道*/    CH_1        =0,    /*AIN1   AIN1-*/    CH_2        =1,    /*AIN2   AIN2-*/    CH_3        =2,    /*AIN1-  AIN1-*/    CH_4        =3        /*AIN1-  AIN2-*/};/*设置寄存器bit定义*/enum{    MD_NORMAL        =(0<<6),    /*正常模式*/    MD_CAL_SELF        =(1<<6),    /*自校准模式*/    MD_CAL_ZERO        =(2<<6),    /*校准0刻度模式*/    MD_CAL_FULL        =(3<<6),    /*校准满刻度模式*/    GAIN_1            =(0<<3),    /*增益*/    GAIN_2            =(1<<3),    /*增益*/    GAIN_4            =(2<<3),    /*增益*/    GAIN_8            =(3<<3),    /*增益*/    GAIN_16            =(4<<3),    /*增益*/    GAIN_32            =(5<<3),    /*增益*/    GAIN_64            =(6<<3),    /*增益*/    GAIN_128        =(7<<3),    /*增益*/    /*无论双极性还是单极性都不改变任何输入信号的状态。

通道1*/        TM7705_WriteByte(MD_CAL_ZERO|__CH1_GAIN_BIPOLAR_BUF|FSYNC_0);/*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成*/    }    elseif(_ch==2)    {        /*校准CH2*/        TM7705_WriteByte(REG_SETUP|WRITE|CH_2);    /*写通信寄存器,通道1*/        TM7705_WriteByte(MD_CAL_FULL|__CH2_GAIN_BIPOLAR_BUF|FSYNC_0);    /*启动自校准*/        TM7705_WaitDRDY();    /*等待内部操作完成*/    }}/***********************************************************************************************************    函数名:TM7705_ReadAdc1*    功能说明:读通道1或2的ADC数据*    形  参:无*    返回值:无**********************************************************************************************************/uint16_tTM7705_ReadAdc(uint8_t_ch){    uint8_ti;    uint16_tread=0;        /*为了避免通道切换造成读数失效,        1MHz(CLKDIV=0)或2MHz  (CLKDIV=1)。

举报

柔道,源于日本的武术项目,主要以摔、掐、挤、踢为格斗技巧,被誉为是一门综合性极强的运动。如果你是一位热爱格斗、搏击运动的朋友,如...

2024-09-22 08:37:34

对于购房者来说,一个温馨舒适的家是所有人的梦想。而装修就是把梦想变为现实的过程。在装修前,很多人都会通过查看装修效果图来获得灵感...

2024-09-22 06:48:53

李廷钊是明朝末年的大儒。他以崇尚《周易》著称,一生著述颇丰,被後人誉为“阳明之前、朱熹之后、明末文学终成一家、元化之源流”。李廷...

2024-09-22 06:38:26
欧洲、美国、日本、韩国、中国:文字的演变与现状

文字,是人类文明发展的重要标志。不同国家、不同地区的文字演变历程和使用现状也不尽相同。欧洲地区的大部分国家多使用拉丁字母,如英语...

2024-09-22 02:51:31

苹果授权服务商是指由苹果公司所授权的机构和公司,这些机构和公司可以向客户提供苹果公司的销售、服务和支持。为了成为苹果授权服务商,...

2024-09-22 01:56:07

世界上最神秘的地方莫过于地狱入口了,而最近,却有一处地方被确定为地狱入口,这可听说到心里犯嘀咕。事情是这样的,美国佛罗里达附近有...

2024-09-21 23:39:54
探索丧尸文化:丧尸粉必读!

丧尸文化,常常是惊悚电影作品中所探讨的主题。然而,这种文化表现形式逐渐变得多样化,形成了众多的丧尸周边产业。这其中,丧尸粉截然成...

2024-09-21 19:55:11
泰国最美人妖:探寻泰国独特的文化现象

泰国,一个以美丽风景和古老文化闻名的国度,而泰国最美人妖则是这个国家独特的文化现象之一。在泰国的街头巷尾,你会经常看到一些在外貌...

2024-09-21 16:43:37

比亚迪U9比亚迪U9是比亚迪汽车推出的一款豪华SUV车型。作为比亚迪旗下的家轿车型,U9以其出色的性能和豪华的配置在市场上备受关...

2024-09-21 16:32:52

作为忙碌的职场女性,产后喂养一直是备受关注的重点,好多女明星们也不例外。尽管身处喜剧圈的他们给人留下了“开心麻花团的精彩岁月”的...

2024-09-21 15:57:57