这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 1031

共28条 1/3 1 2 3 跳转至

1031

菜鸟
2014-10-18 13:32:32     打赏

系统滴答时钟18b20读取18b20的温度与id:http://forum.eepw.com.cn/thread/262415/3#25

系统滴答时钟18b20读取18b20的温度与id截图:http://forum.eepw.com.cn/thread/262415/3#26

spi:http://forum.eepw.com.cn/thread/262415/3#27

焊接成品:http://forum.eepw.com.cn/thread/262415/3#21

安装:http://forum.eepw.com.cn/thread/262415/1#1

测试平台点亮:http://forum.eepw.com.cn/thread/262415/3#24

pwm-rgb.avi:http://forum.eepw.com.cn/thread/262415/2#20

adc-rgb.avi:http://forum.eepw.com.cn/thread/262415/2#19

adc-rgb代码:http://forum.eepw.com.cn/thread/262415/2#18

pwm-rgb代码:http://forum.eepw.com.cn/thread/262415/2#17

iic视频:http://v.youku.com/v_show/id_XODQ5NDc2NzA0.html

rgb视频:http://v.youku.com/v_show/id_XODQ5NDc2NzA0.html

定时中断视频:http://v.youku.com/v_show/id_XODQ5NDc2NzAw.html

定时中断:http://forum.eepw.com.cn/thread/262415/2#14

iic:http://forum.eepw.com.cn/thread/262415/2#15

   rgb代码:http://forum.eepw.com.cn/thread/262415/2/#12

外部中断视频:http://v.youku.com/v_show/id_XODM2NjEyODYw.html

外部中断代码:http://forum.eepw.com.cn/thread/262415/2/#11

串口发送数据改变led速度:http://forum.eepw.com.cn/thread/262415/3#22

串口led速度:http://forum.eepw.com.cn/thread/262415/3#23

数码管切换视频:http://forum.eepw.com.cn/thread/262415/1#8 

数码管切换代码:http://forum.eepw.com.cn/thread/262415/1#7

led回旋视频:http://forum.eepw.com.cn/thread/262415/1#5

led回旋代码:http://forum.eepw.com.cn/thread/262415/1#6















12345678


专家
2014-10-18 17:28:50     打赏
2楼
呵呵,恭喜踏入软件世界

院士
2014-10-18 17:37:30     打赏
3楼
强烈建议楼主以后在安装嵌入式软件时,安装路径下不要有非英语字符。

院士
2014-10-20 09:33:17     打赏
4楼
这没啥多说的,后面才是学东西的时候

菜鸟
2014-10-23 12:39:03     打赏
5楼

菜鸟
2014-10-23 12:40:15     打赏
6楼
/**
  ******************************************************************************
  * @file    GPIO/IOToggle/main.c 
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    08-April-2011
  * @brief   Main program body.
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "stm32_eval.h"
GPIO_InitTypeDef GPIO_InitStructure;

void RCC_Configuration(void)//RCC时钟函数
{
  RCC_DeInit();
    
  RCC_HSICmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
  
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
  
  RCC_HSEConfig(RCC_HSE_OFF);
  RCC_LSEConfig(RCC_LSE_OFF);
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9);
  RCC_PLLCmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);
  RCC_PCLK2Config(RCC_HCLK_Div1);
  RCC_PCLK1Config(RCC_HCLK_Div2);
  RCC_HCLKConfig(RCC_SYSCLK_Div1);
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  while(RCC_GetSYSCLKSource() != 0x08);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}

void GPIO_INIT()  //初始化GPIO
{  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;    
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_3;  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);   
    GPIO_Init(GPIOC, &GPIO_InitStructure);  
}  

void delay_us(u32 n)
{
	u8 j;
	while(n--)
	for(j=0;j<10;j++);
}

void  delay_ms(u32 n)
{
	while(n--)
	delay_us(1000);
}


/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{ 
	RCC_Configuration();
 GPIO_INIT();
	 GPIO_SetBits(GPIOA,GPIO_Pin_1);//RGB灭
	 GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//LED灭
	while(1){
	  GPIO_ResetBits(GPIOC,GPIO_Pin_2);//D3亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_1);	//D2亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_1);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_0);//D1亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_0);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_4);//D5亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_4);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_5);//D6亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_5);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_6);//D7亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_6);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_7);//D8亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_7);
		delay_ms(20);
			  GPIO_ResetBits(GPIOC,GPIO_Pin_3);//D4亮
		delay_ms(20);
		GPIO_SetBits(GPIOC,GPIO_Pin_3);
		delay_ms(20);
		   GPIO_ResetBits(GPIOA,GPIO_Pin_2);//RGB红灯亮
        delay_ms(1500);        
        GPIO_SetBits(GPIOA,GPIO_Pin_2);//红灯灭
        
        
		}
		 
		
}

 


菜鸟
2014-10-30 11:57:45     打赏
7楼

 

/** 
  ****************************************************************************** 
  * @file    GPIO/IOToggle/main.c  
  * @author  MCD Application Team 
  * @version V3.5.0 
  * @date    08-April-2011 
  * @brief   Main program body. 
  ****************************************************************************** 
  * @attention 
  * 
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 
  * 
  * 
 
    © COPYRIGHT 2011 STMicroelectronics 
 
****************************************************************************** 
  */   
  
/* Includes ------------------------------------------------------------------*/  
#include "stm32f10x.h"  
#include "stm32_eval.h"  
GPIO_InitTypeDef GPIO_InitStructure;  
  
void RCC_Configuration(void)  
{  
  RCC_DeInit();  
      
  RCC_HSICmd(ENABLE);  
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);  
    
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);  
    
  RCC_HSEConfig(RCC_HSE_OFF);  
  RCC_LSEConfig(RCC_LSE_OFF);  
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz  
  RCC_PLLCmd(ENABLE);  
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);  
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);  
  RCC_PCLK2Config(RCC_HCLK_Div1);  
  RCC_PCLK1Config(RCC_HCLK_Div2);  
  RCC_HCLKConfig(RCC_SYSCLK_Div1);  
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
  while(RCC_GetSYSCLKSource() != 0x08); 	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOD, &GPIO_InitStructure);  
    GPIO_ResetBits(GPIOD,GPIO_Pin_2);  
}  
  
void GPIO_INIT()  
{  
  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
      
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOB, &GPIO_InitStructure);  
      
}  
  
void delay_us(u32 n)   
{  
    u8 j;  
    while(n--)  
    for(j=0;j<10;j++);  
}  
  
void  delay_ms(u32 n)     
{  
    while(n--)  
    delay_us(1000);  
}  
   
 

void huihui(int i)
{  
           GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);  
        switch(i)
	{  
         case 0 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);  
         break;  
         case 1 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 2 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);  
         break;  
         case 3 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);  
         break;  
         case 4 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);  
         break;  
         case 5 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);  
         break;  
         case 6 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8|GPIO_Pin_5);  
         break;  
         case 7 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 8 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);  
         break;  
         case 9 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
             GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);  
         break;  
         case 10 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 11 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 12 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 13 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);  
                         delay_ms(110);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(150);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 14 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);  
                         delay_ms(110);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(150);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
         case 15 :   
             GPIO_SetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);  
                         delay_ms(110);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_1);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
                         delay_ms(150);  
                         GPIO_ResetBits(GPIOB,GPIO_Pin_15);  
                         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);  
         break;  
        }  
    }  

        
 
  
  
      
  
int main(void)     
{        
      char jishuqi1 = 0, jishuqi2 = 0,count=0;    
      RCC_Configuration();    
         GPIO_INIT();       
      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);  
	   while(1){  
     if(!GPIO_ReadInputDataBit (GPIOC,GPIO_Pin_10))  
      {  
                    delay_ms(100);  
         if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10))  
               {  
                                 count++;    
              }  
                        }  
             if(count%2==1){     
                                                            if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))    
                                                 {   delay_ms(80);     
                                                             if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))  
                                                                             {jishuqi1++;}  
                                                            }    
                                                                if(jishuqi1>15)  
                                                                  {jishuqi1=0;}   
																	 huihui(jishuqi1);  
            }  
      
       if(count%2==0){  
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9))  
         {delay_ms(80);     
          if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)){jishuqi2++;}}    
                 if(jishuqi2>100){jishuqi2=0;}    
                  huihui(jishuqi2);}  
     
       }     
  
   }

 


菜鸟
2014-10-30 12:36:59     打赏
8楼

高工
2014-10-30 23:17:10     打赏
9楼

函数取名能不能清晰一点

huihui是什么?


菜鸟
2014-10-30 23:32:13     打赏
10楼
是谢辉教我写的代码,所以函数名我取了huihui,不要在意这个

共28条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]