这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 更新,更新LED 灯Z字形点亮,RGB闪烁过程,程序代码及视频。

共7条 1/1 1 跳转至

更新,更新LED 灯Z字形点亮,RGB闪烁过程,程序代码及视频。

菜鸟
2014-10-24 12:36:57     打赏

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

#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()  
{  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE);//使能PC、PA时钟  
  
  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;//Ñ¡Ôñ¹Ü½Åp0ÖÁp7  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//管脚最高输出速率为50MHZ  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出  
  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化PC  
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//使用PA1¡、PA2¡、PA3    
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA  
}    

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(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);
	while(1){
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_3);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_3);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_2);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_1);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_1);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_0);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_0);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_7);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_7);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_6);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_6);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_5);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_5);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_4);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_4);
		delay_ms(100)	;
          
		GPIO_ResetBits(GPIOC,GPIO_Pin_1);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_1);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_0);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_0);
		delay_ms(100);
                GPIO_ResetBits(GPIOC,GPIO_Pin_5);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_5);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_4);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_4);
		delay_ms(100)	;

                GPIO_ResetBits(GPIOC,GPIO_Pin_3);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_3);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_2);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);
		delay_ms(100);
                GPIO_ResetBits(GPIOC,GPIO_Pin_7);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_7);
		delay_ms(100);
		GPIO_ResetBits(GPIOC,GPIO_Pin_6);
		delay_ms(100);
		GPIO_SetBits(GPIOC,GPIO_Pin_6);
		delay_ms(100);
        
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);  //亮红灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_2);      //灭红灯  
        delay_ms(100);  

         GPIO_ResetBits(GPIOA,GPIO_Pin_1);  //亮蓝灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_1);      //灭蓝灯  
        delay_ms(100);  

        GPIO_ResetBits(GPIOA,GPIO_Pin_3);//亮绿灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_3);         //灭绿灯  
        delay_ms(100)   ;  

        GPIO_ResetBits(GPIOA,GPIO_Pin_3);//亮绿灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_3);       //灭绿灯  
        delay_ms(100)   ;  
       
        GPIO_ResetBits(GPIOA,GPIO_Pin_1);//亮蓝灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_1);         //灭蓝灯  
        delay_ms(100);  
      
         GPIO_ResetBits(GPIOA,GPIO_Pin_2);//亮红灯  
        delay_ms(100);  
        GPIO_SetBits(GPIOA,GPIO_Pin_2);     //灭红灯  
        delay_ms(100);  
      
	}
	
}



 


高工
2014-10-24 18:42:21     打赏
2楼

http://forum.eepw.com.cn/thread/260573/1

楼主好生看看这个


菜鸟
2014-10-30 23:47:18     打赏
3楼
boss不明白你的用意

高工
2014-10-30 23:49:58     打赏
4楼

把帖子整理一下

希望是一个帖子里面汇总了所有的作业


菜鸟
2014-10-30 23:54:22     打赏
5楼
好的好的。。。。我帮他们弄到一起

菜鸟
2014-10-30 23:54:51     打赏
6楼
好的好的。。。。我帮他们弄到一起

高工
2014-11-02 23:44:31     打赏
7楼

楼主程序的循环里,用了N多

 GPIO_ResetBits();   

delay_ms();  

有没有想过简化一下程序?


共7条 1/1 1 跳转至

回复

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