这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 【更新】stm32系统滴答时钟18b20

共36条 2/4 1 2 3 4 跳转至
菜鸟
2014-10-22 14:06:23     打赏
11楼

 

Keil uVision4的安装


  一、首先我们应该先找到mdk472_a.exe安装程序,单击打开




 二、点击打开后会相应的出现,安装的工作界面






三、点击下一步。这里需要大家在协议上打勾才可以进行,下一步。




四、打勾后点击下一步,这时候会出现安装软件储存的位置,大家可以点击Browse(浏览)处,设置自己想要存放软件的地方




五、将软件储存位置设定好后,点击下一步,这时大家会看到,这里需要大家填写,名字和邮箱。大家不用紧张,名字和邮箱可以自己决定,随便填写就好。




六、下来就是软件漫长的过程,过程大概需要5-10分钟。




七、待进度条运行100%,点击下一步。这里不需要做更改,默认就好。




点击下一步。点击finish 。完成安装。




八、安装完成后,左面上就会有keil uvision4快捷方式了。



Keil uVision4破解过程

软件安装后,就要将其破解才能为我们服务!下面我为大家讲解下破解的过程。


一、下面这是我们破解Keil uVision4,所用到的软件。keil_lic.exe



二、点击打开运用程序,我们会听到动听的音乐,还有酷炫的界面图。




三、这软件怎么用呢。不急,我们相继打开Keil uVision4。打开file,找到license management,单击。。

四、单击后,会出现对应的对话框。将license management  CID 数据(图片蓝色部分)填入keil_lic.exe CID里面


 五、然后按下keil_lic.exe 的Generate建。在其上面就会出现一段License ID Code 代码。然后将代码填入上面左图New License ID Code (LIC)中,然后点击Add LIC .就可以完成这次破解的操作了。


助工
2014-10-28 12:19:47     打赏
12楼

赞一个

 

 

 


菜鸟
2014-10-30 23:32:58     打赏
13楼
 数码管切换按键代码:
/**
  ******************************************************************************
  * @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_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);//disable JTAG
  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);
}

 int table[10]={GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8 ,GPIO_Pin_9|GPIO_Pin_12 ,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5,
GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5,
GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8|GPIO_Pin_5,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12,
GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14

};

void s1s2_25(char temp)
{
	char ge=0,shi=0;
	shi=temp/10;
	ge=temp%10;
	GPIO_SetBits(GPIOB,GPIO_Pin_15);
			  GPIO_ResetBits(GPIOB,table[shi]);
	   	  delay_ms(5);
		    GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		   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);
			
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			  GPIO_ResetBits(GPIOB,table[ge]);

	  	  delay_ms(5);
				GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		   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);
			if(temp>15)
			{
					GPIO_SetBits(GPIOB,GPIO_Pin_15);
			  GPIO_ResetBits(GPIOB,table[shi]);
	   	  delay_ms(100);
		    GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		   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);
			
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			  GPIO_ResetBits(GPIOB,table[ge]);

	  	  delay_ms(150);
				GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		   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);

			}

}


void funtion()
{
  
    char a = 0, b = 0,count=0; 
	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))
																			 {a++;}
															}  
																if(a>25)
                                   {a=0;} 
												    	s1s2_25(a);
            }
    
       if(count%2==0){
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9))
         {delay_ms(80);   
          if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)){b++;}}  
                 if(b>25){b=0;}  
                 s1s2_25(b);}
   
       }   

}


	

int main(void)   
{      
   
      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); 
			funtion();
	
     }   


 


菜鸟
2014-11-01 11:25:36     打赏
14楼

菜鸟
2014-11-11 14:02:16     打赏
15楼

 



stm32串口控制视频(双十一,你懂的):



视频地址:http://player.youku.com/player.php/sid/XODI0MzA3MDY4/v.swf
 


  stm32串口控制代码:

#include "stm32f10x.h"  
#include "stm32_eval.h"  
#include    "stdio.h"  
  
#define buff_size  16;   
  
GPIO_InitTypeDef GPIO_InitStructure;  
char rx_buff[],rx_buff_count=0;  
  
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);//disable JTAG  
  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()  
{  
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;  
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
     GPIO_Init(GPIOC, &GPIO_InitStructure);  
    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);  
}  
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 USART_int(long BaudRate)  
{ USART_InitTypeDef USART_InitStructure;  
    USART_ClockInitTypeDef USART_ClockInitStructure;  
     NVIC_InitTypeDef NVIC_InitStructure;  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);  
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   
    GPIO_Init(GPIOA, &GPIO_InitStructure);  
    /* PA10 USART1_Rx  */  
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
    GPIO_Init(GPIOA, &GPIO_InitStructure);  
  /* USARTx configured as follow: 
        - BaudRate = 115200 baud   
        - Word Length = 8 Bits 
        - One Stop Bit 
        - No parity 
        - Hardware flow control disabled (RTS and CTS signals) 
        - Receive and transmit enabled 
  */  
  USART_InitStructure.USART_BaudRate = BaudRate;//??????  
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;//???????8bit  
  USART_InitStructure.USART_StopBits = USART_StopBits_1;//????1  
  USART_InitStructure.USART_Parity = USART_Parity_No;//????  
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//??????none  
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//??????????  
    USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;       
  USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;        
  USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;        
  USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;  
  USART_ClockInit(USART1, &USART_ClockInitStructure);  
  USART_Init(USART1, &USART_InitStructure);  
  USART_Cmd(USART1, ENABLE);  
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  
  USART_Cmd(USART1, ENABLE);  
  
  /* Configure four bit for preemption priority */  
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);  
  /* Enable the USART1 Interrupt */  
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //  
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;  
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
  NVIC_Init(&NVIC_InitStructure);  
}  
  
void USART_SendStr(char *str)  
{  
   while((*str)!='\0')  
{USART_SendData(USART1,*str++);  
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);  
}  
}  
  
char strcmp(char *S,char *C,char LEN)  
{ char count;  
  for(count=0;count<LEN;count++)  
  {  
      if(S[count]!=C[count])  
          {return 0;}  
  }  
  return 1;  
}  
  
void commcmp(char *S,char LEN)  
{   
    int i,j;  
    unsigned char flag=0;  
 if((LEN!=6)&(LEN!=7)&(LEN!=8)&(LEN!=9))  
 {USART_SendStr("\r\n Erro input!!!\r\n");}  
  else{  
    switch(LEN)  
   {  
           
     case 6:  
              
         {  
                 flag = strcmp(S,"time=5",6);  
          if(flag==1) 
           
                  {  
                      USART_SendStr("\r\n I \r\n");					
                      for(i=0;i<=18;i++)  
                        {  
                          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);  
                          i=0x01;  
                          GPIO_ResetBits(GPIOC,i);  
                          delay_ms(5);    
                          GPIO_SetBits(GPIOC,i);
                                                                  
                            for(j=1;j<=3;j++)   
                             {    
                                i<<=1;   
                                GPIO_ResetBits(GPIOC,i);             
                                delay_ms(5);    
                                GPIO_SetBits(GPIOC,i);  
                             }    
                           i=0x0100;    
                           for(j=1;j<=4;j++)    
                             {    
                              i>>=1;  
                              GPIO_ResetBits(GPIOC,i);     
                              delay_ms(5);    
                              GPIO_SetBits(GPIOC,i);  
                                                      
                             }  
                      
                          }  
                                                               
  
                   }  
         }  
                              
                              
     case 7:  
      
             {   
							 

                  flag = strcmp(S,"time=20",7);  
                   if(flag==1)  
                    {  
											USART_SendStr("\r\n love you \r\n");  
                        for(i=0;i<=18;i++)  
                          {  
                              i=0x0010;  
                              for(j=1;j<=4;j++)   
                                  {    
                                      i>>=1;   
                                      GPIO_ResetBits(GPIOC,i);             
                                      delay_ms(100);    
                                      GPIO_SetBits(GPIOC,i);  
                                   }    
                                i=0x08;    
                                for(j=1;j<=4;j++)    
                                   {    
                                       i<<=1;  
                                       GPIO_ResetBits(GPIOC,i);     
                                       delay_ms(100);    
                                       GPIO_SetBits(GPIOC,i);  
                                    }  
  
                          }  
                            
                   }   
            }  
						case 8:        
             {  
               flag = strcmp(S,"time=520",8);  
               if(flag==1)  
                 { 
									 USART_SendStr("\r\n I love you  \r\n");
                   									 
                   for(i=0;i<=18;i++)  
                      {									 
                         GPIO_SetBits(GPIOC,0x000000ff);   
                         i=0x00100;
												
                         for(j=1;j<=8;j++)   
                             {
                                 i>>=1;   
                                 GPIO_ResetBits(GPIOC,i);             
                                 delay_ms(520);    
                                 GPIO_SetBits(GPIOC,i);  
                             }    
                                                          
                       }  
                                                                      
                      break;   
                   }   
            }  
     case 9:        
             {  
               flag = strcmp(S,"time=1111",9);  
               if(flag==1)  
                 { 
									 USART_SendStr("\r\n  Singles Day I love you \r\n");
                   									 
                   for(i=0;i<=18;i++)  
                      {									 
                         GPIO_SetBits(GPIOC,0x000000ff);   
                         i=0x00100;
												
                         for(j=1;j<=8;j++)   
                             {
                                 i>>=1;   
                                 GPIO_ResetBits(GPIOC,i);             
                                 delay_ms(1111);    
                                 GPIO_SetBits(GPIOC,i);  
                             }    
                                                          
                       }  
                                                                      
                      break;   
                 }  
       
     }  
							 
    }  
       }  
 }  
          
void input_ASK()  
{     
    char j;  
    commcmp(rx_buff,rx_buff_count);  
     rx_buff_count=0;  
      for (j=0;j<rx_buff_count;j++)  
          {rx_buff[j]='\0';}  
    USART_SendStr("\n>");  
}  
  
int main(void)  
{   
          
    RCC_Configuration();  
    GPIO_INIT();  
  USART_int(9600);  
    USART_SendStr("SyStem booting......\r\n");  
 while(1){}         
}  
  
  
  
void USART1_IRQHandler(void)   
{   
  
  while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)  
  {   
  }   
if(USART_ReceiveData(USART1)==0x0d)  
{input_ASK();}  
else  
{  
USART_SendData(USART1,USART_ReceiveData(USART1));  
rx_buff[rx_buff_count]= USART_ReceiveData(USART1);  
    rx_buff_count++;  
}  
  USART_ClearFlag(USART1, USART_FLAG_RXNE);  
  
}  

 



菜鸟
2014-11-11 20:59:59     打赏
16楼

高工
2014-11-12 11:16:46     打赏
17楼

这个代码,哭笑不得啊

能不能上个1234ms的速度?



菜鸟
2014-11-13 13:05:36     打赏
18楼
可以啊。。。不过1234没意义

菜鸟
2014-11-13 16:29:23     打赏
19楼

你太有才了


高工
2014-11-20 18:06:12     打赏
20楼
是不是还得修改代码才能辨认1234?

共36条 2/4 1 2 3 4 跳转至

回复

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