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

共8条 1/1 1 跳转至

49号作业

菜鸟
2014-12-26 01:13:17     打赏

院士
2014-12-26 15:34:36     打赏
2楼
这是最基础的安装

菜鸟
2014-12-27 01:29:42     打赏
3楼

菜鸟
2014-12-27 01:35:23     打赏
4楼

LED&RGB

view plaincopy to clipboardprint?

/* 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()    
{    
    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|GPIO_Pin_2|GPIO_Pin_3);//开始运行时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_3);//D4亮  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_3);//D4灭  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_2);//D3亮  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_2);//D3灭  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_1);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_1);  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_0);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_0);  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_7);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_7);  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_6);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_6);  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_5);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_5);  
        delay_ms(80);  
              GPIO_ResetBits(GPIOC,GPIO_Pin_4);  
        delay_ms(80);  
        GPIO_SetBits(GPIOC,GPIO_Pin_4);  
        delay_ms(80);  
           GPIO_ResetBits(GPIOA,GPIO_Pin_1); //RGB蓝灯亮   
        delay_ms(1500);          
        GPIO_SetBits(GPIOA,GPIO_Pin_1);  //RGB蓝灯灭  
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);  //RGB红灯亮  
        delay_ms(1500);          
        GPIO_SetBits(GPIOA,GPIO_Pin_2); //RGB红灯灭   
         GPIO_ResetBits(GPIOA,GPIO_Pin_3); //RGB绿灯亮   
        delay_ms(1500);          
        GPIO_SetBits(GPIOA,GPIO_Pin_3);  //RGB绿灯灭    
        GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);  //RGB亮蓝灯和绿灯组合的颜色  
        delay_ms(1500);          
        GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);  //RGB灭蓝灯和绿灯组合的颜色  
        }  
           
          
}  
 

菜鸟
2014-12-27 01:41:13     打赏
5楼
  1. #include "stm32f10x.h"       
  2. #include "stm32_eval.h"       
  3. GPIO_InitTypeDef GPIO_InitStructure;    //??GPIO???    
  4.     
  5. NVIC_InitTypeDef  NVIC_InitStructure;    
  6. USART_InitTypeDef  USART_InitStructure;     
  7. USART_ClockInitTypeDef  USART_ClockInitStructure;     
  8.     
  9. #define buff_size  16;         
  10. char rx_buff[],rx_buff_count=0;    
  11.     
  12. /*???? ??*/      
  13. void delay_us(u32 n)       
  14. {       
  15.     u8 j;       
  16.     while(n--)       
  17.     for(j=0;j<10;j++);       
  18. }       
  19. /*???? ??*/      
  20. void  delay_ms(u32 n)       
  21. {       
  22.    while(n--)       
  23.     delay_us(1000);       
  24. }     
  25.     
  26. void RCC_Configuration(void)       
  27. {       
  28.     RCC_DeInit();       
  29.     RCC_HSICmd(ENABLE);       
  30.     while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);       
  31.     RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);       
  32.     RCC_HSEConfig(RCC_HSE_OFF);       
  33.     RCC_LSEConfig(RCC_LSE_OFF);       
  34.     RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz       
  35.     RCC_PLLCmd(ENABLE);       
  36.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);       
  37.     RCC_ADCCLKConfig(RCC_PCLK2_Div4);       
  38.     RCC_PCLK2Config(RCC_HCLK_Div1);       
  39.     RCC_PCLK1Config(RCC_HCLK_Div2);       
  40.     RCC_HCLKConfig(RCC_SYSCLK_Div1);       
  41.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);       
  42.     while(RCC_GetSYSCLKSource() != 0x08);       
  43.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);       
  44.     GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);    
  45.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;       
  46.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
  47.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  48.     GPIO_Init(GPIOD, &GPIO_InitStructure);       
  49.     GPIO_ResetBits(GPIOD,GPIO_Pin_2);                      //?????    
  50. }     
  51.     
  52. void USART_SendStr(char *str)      //???????    
  53. {    
  54.    while((*str)!='\0')             //???????    
  55.         {USART_SendData(USART1,*str++);    
  56.         while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);    
  57.         }    
  58. }    
  59.     
  60. void USART_int(long BaudRate)       //USART??    
  61. {    
  62.       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//??PA?USART1    
  63.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;               //PA^9??TX_D1    
  64.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;    
  65.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //??????    
  66.     GPIO_Init(GPIOA, &GPIO_InitStructure);    
  67.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;               //PA^10??RX_D1    
  68.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     //????    
  69.     GPIO_Init(GPIOA, &GPIO_InitStructure);    
  70.     
  71.     USART_InitStructure.USART_BaudRate = BaudRate;//????    
  72.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;//??8bit    
  73.     USART_InitStructure.USART_StopBits = USART_StopBits_1;      //???1    
  74.     USART_InitStructure.USART_Parity = USART_Parity_No;//????    
  75.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  //???none    
  76.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;                  //???????    
  77.       USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;         
  78.     USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;          
  79.     USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;          
  80.     USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;    
  81.     USART_ClockInit(USART1, &USART_ClockInitStructure);           //???USART1??         
  82.     USART_Init(USART1, &USART_InitStructure);                    //???USART1    
  83.     USART_Cmd(USART1, ENABLE);     
  84.       USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);    
  85.     USART_Cmd(USART1, ENABLE);    
  86.      
  87.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);       //??4????    
  88.         NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;     //??USART1????    
  89.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;    
  90.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    
  91.         NVIC_Init(&NVIC_InitStructure);                       //?????    
  92. }    
  93.     
  94. void GPIO_INIT()       
  95. {      
  96.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //RCC_APB2Periph_GPIOC  ??GPIOX???      ENABLE\DISABLE   ??or??      
  97.     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;//??:????PC^0-7       
  98.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //??:????    
  99.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //??:Out_PP????,????,??           
  100.     GPIO_Init(GPIOC, &GPIO_InitStructure);      
  101. }    
  102.     
  103. unsigned int my_atoi(char* pstr) //???:????????    
  104. {       
  105.       int s = 0;      
  106.         while(*pstr != '\0')        //??????????????    
  107.         {    
  108.                 if(*pstr >= '0' && *pstr <= '9')  //????????0-9???    
  109.                 {      
  110.                         s = s * 10 + *pstr - '0';       
  111.                 }      
  112.                 pstr++;    
  113.         }           
  114.     return s;     
  115. }     
  116.     
  117.     
  118.     
  119.     
  120.     
  121. int main()      
  122. {                               
  123.         RCC_Configuration();    
  124.       GPIO_INIT();     
  125.         USART_int(9600);    
  126.         USART_SendStr("Please input like: data=\r\n");    
  127.         USART_SendStr("\n>");    
  128.         while(1){    
  129.                 }    
  130. }    
  131.     
  132. void USART1_IRQHandler(void)     
  133. {     
  134.   while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)    
  135.   {     
  136.   }     
  137.         
  138.   USART_ClearFlag(USART1, USART_FLAG_RXNE);    
  139.     
  140. }  

菜鸟
2014-12-27 01:47:03     打赏
6楼

定时器中断

         view plaincopy to clipboardprint?

  1. /** 
  2.   ****************************************************************************** 
  3.   * @file    EXTI/EXTI_Config/main.c  
  4.   * @author  MCD Application Team 
  5.   * @version V3.5.0 
  6.   * @date    08-April-2011 
  7.   * @brief   Main program body 
  8.   ****************************************************************************** 
  9.   * @attention 
  10.   * 
  11.   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 
  12.   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 
  13.   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 
  14.   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 
  15.   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 
  16.   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 
  17.   * 
  18.   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2> 
  19.   ****************************************************************************** 
  20.   */   
  21.   
  22. /* Includes ------------------------------------------------------------------*/  
  23. #include "stm32f10x.h"  
  24. #include "stm32_eval.h"  
  25. #include <stdio.h>  
  26. /** @addtogroup STM32F10x_StdPeriph_Examples 
  27.   * @{ 
  28.   */  
  29.   
  30. /** @addtogroup EXTI_Config 
  31.   * @{ 
  32.   */   
  33.   
  34. /* Private typedef -----------------------------------------------------------*/  
  35. /* Private define ------------------------------------------------------------*/  
  36. /* Private macro -------------------------------------------------------------*/  
  37. /* Private variables ---------------------------------------------------------*/  
  38. EXTI_InitTypeDef   EXTI_InitStructure;  
  39. GPIO_InitTypeDef   GPIO_InitStructure;  
  40. NVIC_InitTypeDef   NVIC_InitStructure;  
  41. USART_InitTypeDef USART_InitStructure;  
  42. USART_ClockInitTypeDef USART_ClockInitStructure;  
  43. TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;  
  44. TIM_OCInitTypeDef  TIM_OCInitStructure;  
  45. long flag,temp;  
  46. void RCC_Configuration(void)  
  47. {/* 
  48.   RCC_DeInit(); 
  49.      
  50.   RCC_HSICmd(ENABLE); 
  51.   while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); 
  52.    
  53.   RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); 
  54.    
  55.   RCC_HSEConfig(RCC_HSE_OFF); 
  56.   RCC_LSEConfig(RCC_LSE_OFF); 
  57.   RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz 
  58.   RCC_PLLCmd(ENABLE); 
  59.   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 
  60.   RCC_ADCCLKConfig(RCC_PCLK2_Div4); 
  61.   RCC_PCLK2Config(RCC_HCLK_Div1); 
  62.   RCC_PCLK1Config(RCC_HCLK_Div2); 
  63.   RCC_HCLKConfig(RCC_SYSCLK_Div1); 
  64.   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 
  65.   while(RCC_GetSYSCLKSource() != 0x08); 
  66. */  
  67.     SystemInit();  
  68.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
  69.  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
  70. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
  71.  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
  72.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
  73.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  74.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  75.   GPIO_Init(GPIOD, &GPIO_InitStructure);  
  76.     GPIO_ResetBits(GPIOD,GPIO_Pin_2);  
  77.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  
  78.  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
  79.   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;  
  80.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  81.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  82.   GPIO_Init(GPIOC, &GPIO_InitStructure);  
  83.     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);  
  84.       RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);  
  85.          RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);  
  86. }  
  87.   
  88. void USART_int(long BaudRate)  
  89. {  
  90.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);  
  91.        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  
  92.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
  93.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   
  94.     GPIO_Init(GPIOA, &GPIO_InitStructure);  
  95.     /* PA10 USART1_Rx  */  
  96.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  
  97.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  98.     GPIO_Init(GPIOA, &GPIO_InitStructure);  
  99.   /* USARTx configured as follow: 
  100.         - BaudRate = 115200 baud   
  101.         - Word Length = 8 Bits 
  102.         - One Stop Bit 
  103.         - No parity 
  104.         - Hardware flow control disabled (RTS and CTS signals) 
  105.         - Receive and transmit enabled 
  106.   */  
  107.   USART_InitStructure.USART_BaudRate = BaudRate;//??????  
  108.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;//???????8bit  
  109.   USART_InitStructure.USART_StopBits = USART_StopBits_1;//????1  
  110.   USART_InitStructure.USART_Parity = USART_Parity_No;//????  
  111.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//??????none  
  112.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//??????????  
  113.     USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;       
  114.     USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;        
  115.     USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;        
  116.     USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;  
  117.     USART_ClockInit(USART1, &USART_ClockInitStructure);  
  118.   USART_Init(USART1, &USART_InitStructure);  
  119.   USART_Cmd(USART1, ENABLE);  
  120.     USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  
  121.  USART_Cmd(USART1, ENABLE);  
  122. }  
  123.   
  124. void NVIC_Configuration(void)  
  125. {  
  126.   NVIC_InitTypeDef NVIC_InitStructure;  
  127.   
  128.   /* Enable the TIM2 global Interrupt */  
  129.   NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;  
  130.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  
  131.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;  
  132.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
  133.   
  134.   NVIC_Init(&NVIC_InitStructure);  
  135.       
  136.   
  137.   /* Enable the TIM2 global Interrupt */  
  138.   NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  
  139.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  
  140.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;  
  141.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
  142.   
  143.   NVIC_Init(&NVIC_InitStructure);  
  144. }  
  145.   
  146. /* Private functions ---------------------------------------------------------*/  
  147.   
  148. /** 
  149.   * @brief  Main program. 
  150.   * @param  None 
  151.   * @retval None 
  152.   */  
  153. int main(void)  
  154. {  
  155.   /*!< At this stage the microcontroller clock setting is already configured,  
  156.        this is done through SystemInit() function which is called from startup 
  157.        file (startup_stm32f10x_xx.s) before to branch to application main. 
  158.        To reconfigure the default setting of SystemInit() function, refer to 
  159.        system_stm32f10x.c file 
  160.      */       
  161.          
  162.   /* System Clocks Configuration */  
  163.     GPIO_ResetBits(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);  
  164.   RCC_Configuration();  
  165.   
  166. NVIC_Configuration();  
  167. USART_int(115200);  
  168.     printf("config done...\r\n");  
  169.   
  170.   /* Time base configuration */  
  171.   TIM_TimeBaseStructure.TIM_Period = 36000;  
  172.   TIM_TimeBaseStructure.TIM_Prescaler = 0;  
  173.   TIM_TimeBaseStructure.TIM_ClockDivision = 0;  
  174.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
  175.   
  176.   TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);  
  177. TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );   
  178.     
  179.      TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);  
  180. TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );   
  181.     
  182.   /* TIM2 enable counter */  
  183.   TIM_Cmd(TIM2, ENABLE);  
  184.  TIM_Cmd(TIM3, ENABLE);  
  185.   while (1){  
  186.         if(flag == 1000)  
  187.         {printf("TIM2 interrupt......\r\n");  
  188. flag = 0;  
  189. GPIO_SetBits(GPIOC,GPIO_Pin_2);  
  190.             GPIO_ResetBits(GPIOC,GPIO_Pin_1);  
  191.           
  192.         }  
  193. if(temp == 3000)  
  194. {   printf("TIM3 interrupt......\r\n");  
  195. temp = 0;  
  196. GPIO_SetBits(GPIOC,GPIO_Pin_1);  
  197.     GPIO_ResetBits(GPIOC,GPIO_Pin_2);  
  198.           
  199. }  
  200. //else{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);}  
  201. //}  
  202. }  
  203. }  
  204.   
  205. void TIM2_IRQHandler(void//TIM3 ??  
  206. {  
  207. if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //?? TIM3 ????????  
  208. {  
  209. TIM_ClearITPendingBit(TIM2, TIM_IT_Update ); //?? TIM3 ??????  
  210.     flag++;  
  211.     GPIO_SetBits(GPIOC,GPIO_Pin_1);  
  212. }  
  213. }  
  214. void TIM3_IRQHandler(void//TIM3 ??  
  215. {  
  216. if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //?? TIM3 ????????  
  217. {  
  218. TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //?? TIM3 ??????  
  219.     temp++;  
  220.     GPIO_SetBits(GPIOC,GPIO_Pin_2);  
  221. }  
  222. }  
  223.   
  224. #ifdef  USE_FULL_ASSERT  
  225.   
  226. /** 
  227.   * @brief  Reports the name of the source file and the source line number 
  228.   *         where the assert_param error has occurred. 
  229.   * @param  file: pointer to the source file name 
  230.   * @param  line: assert_param error line source number 
  231.   * @retval None 
  232.   */  
  233. void assert_failed(uint8_t* file, uint32_t line)  
  234. {   
  235.   /* User can add his own implementation to report the file name and line number, 
  236.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */  
  237.   
  238.   /* Infinite loop */  
  239.   while (1)  
  240.   {  
  241.   }  
  242. }  
  243.   
  244. #endif  
  245.   
  246. /** 
  247.   * @} 
  248.   */   
  249.   
  250. /** 
  251.   * @} 
  252.   */   
  253.   
  254. #ifdef __GNUC__  
  255.   /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf 
  256.      set to 'Yes') calls __io_putchar() */  
  257.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)  
  258. #else  
  259.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  
  260. #endif /* __GNUC__ */  
  261.     
  262.   
  263.   
  264. /** 
  265.   * @brief  Retargets the C library printf function to the USART. 
  266.   * @param  None 
  267.   * @retval None 
  268.   */  
  269. PUTCHAR_PROTOTYPE  
  270. {  
  271.   /* Place your implementation of fputc here */  
  272.   /* e.g. write a character to the USART */  
  273.   USART_SendData(EVAL_COM1, (uint8_t) ch);  
  274.   
  275.   /* Loop until the end of transmission */  
  276.   while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)  
  277.   {}  
  278.   
  279.   return ch;  
  280. }  
  281.   
  282. #ifdef  USE_FULL_ASSERT  
  283.   
  284. /** 
  285.   * @brief  Reports the name of the source file and the source line number 
  286.   *         where the assert_param error has occurred. 
  287.   * @param  file: pointer to the source file name 
  288.   * @param  line: assert_param error line source number 
  289.   * @retval None 
  290.   */  
  291. void assert_failed(uint8_t* file, uint32_t line)  
  292. {   
  293.   /* User can add his own implementation to report the file name and line number, 
  294.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */  
  295.   
  296.   /* Infinite loop */  
  297.   while (1)  
  298.   {  
  299.   }  
  300. }  
  301.   
  302. #endif  
  303.   
  304. /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ 

菜鸟
2014-12-27 01:49:23     打赏
7楼
/* Includes ------------------------------------------------------------------*/    
#include "stm32f10x.h"    
#include "stm32_eval.h"    
#include     
#define VREF 3.3    
int temp0,temp1,temp2;     
GPIO_InitTypeDef   GPIO_InitStructure;    
USART_InitTypeDef USART_InitStructure;    
USART_ClockInitTypeDef USART_ClockInitStructure;    
    
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 RCC_Configuration(void)    
{    
    SystemInit();    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);    
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG    
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);    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);    
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG    
  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);    
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);    
}     
    
void USART_int(long BaudRate)    
{    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);    
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;    
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
    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;  
  USART_InitStructure.USART_StopBits = USART_StopBits_1;   
  USART_InitStructure.USART_Parity = USART_Parity_No;    
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_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);    
}    
    
    
void PWM_Config()    
{uint16_t PrescalerValue = 0;//?????        
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;    
TIM_OCInitTypeDef  TIM_OCInitStructure;    
    /* TIM2 clock enable */    
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);    
  /* GPIOA  enable */    
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO  , ENABLE);    
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;    
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
  GPIO_Init(GPIOA, &GPIO_InitStructure);    
        TIM_Cmd(TIM2, ENABLE);//TIM2??    
      /* Compute the prescaler value */    
  PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;    
  /* Time base configuration */    
  TIM_TimeBaseStructure.TIM_Period = 0x07FF;   
  TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;    
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;       
    
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;    
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);       
    
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;   
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  
  /* PWM1 Mode configuration: Channel2 */    
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;    
  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;   
  TIM_OC2Init(TIM2, &TIM_OCInitStructure);        
    
    /* PWM1 Mode configuration: Channel3 */    
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;    
  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;   
  TIM_OC3Init(TIM2, &TIM_OCInitStructure);      
    
    /* PWM1 Mode configuration: Channel4 */    
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;    
  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;  
  TIM_OC4Init(TIM2, &TIM_OCInitStructure);      
            
    
  TIM_ARRPreloadConfig(TIM2, ENABLE);//     
}    
        
  
  
void colour(int a)  //·Ö±ð¿ªÆôÑÕÉ«  
{    
if(a==0)  
    temp0=1000,temp1=200,temp2=0;  
else if(a==1)  
    temp0=2000,temp1=2000,temp2=1000;  
else if(a==2)  
    temp0=0,temp1=1000,temp2=1000;  
else if(a==3)  
    temp0=1000,temp1=1500,temp2=1000;  
else if(a==4)  
    temp0=500,temp1=1000,temp2=2000;  
else if(a==5)  
    temp0=500,temp1=1500,temp2=1000;  
else if(a==6)     
    temp0=1500,temp1=1000,temp2=1500;  
}     
    
void PWM_TEST()    
{     
  int i=0;    
 for(i=0;i<7;i++)    
 {    
      colour(i);  //temp1-Red,temp2-Green,temp0-Blue    
  TIM_SetCompare2(TIM2,temp0);delay_ms(500);          
       TIM_SetCompare3(TIM2,temp1);delay_ms(500);               
       TIM_SetCompare4(TIM2,temp2);delay_ms(500);         
    
  }    
}     
int main(void)    
    
{    
        
  RCC_Configuration();    
  USART_int(115200);    
        
    printf(" config done...\r\n");    
    PWM_Config();    
    delay_ms(1000);    
    while(1)    
    {    
        PWM_TEST();    
    }    
}    
#ifdef  USE_FULL_ASSERT    
    
/**  
  * @brief  Reports the name of the source file and the source line number  
  *         where the assert_param error has occurred.  
  * @param  file: pointer to the source file name  
  * @param  line: assert_param error line source number  
  * @retval None  
  */    
void assert_failed(uint8_t* file, uint32_t line)    
{     
  /* User can add his own implementation to report the file name and line number,  
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */    
    
  /* Infinite loop */    
  while (1)    
  {    
  }    
}    
    
#endif    
    
/**  
  * @}  
  */     
    
/**  
  * @}  
  */     
    
#ifdef __GNUC__    
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf  
     set to 'Yes') calls __io_putchar() */    
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)    
#else    
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)    
#endif /* __GNUC__ */    
      
    
    
/**  
  * @brief  Retargets the C library printf function to the USART.  
  * @param  None  
  * @retval None  
  */    
PUTCHAR_PROTOTYPE    
{    
  /* Place your implementation of fputc here */    
  /* e.g. write a character to the USART */    
  USART_SendData(EVAL_COM1, (uint8_t) ch);    
    
  /* Loop until the end of transmission */    
  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)    
  {}    
    
  return ch;    
}    
    
#ifdef  USE_FULL_ASSERT    
    
/**  
  * @brief  Reports the name of the source file and the source line number  
  *         where the assert_param error has occurred.  
  * @param  file: pointer to the source file name  
  * @param  line: assert_param error line source number  
  * @retval None  
  */    
void assert_failed(uint8_t* file, uint32_t line)    
{     
  /* User can add his own implementation to report the file name and line number,  
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */    
    
  /* Infinite loop */    
  while (1)    
  {    
  }    
}    
    
#endif    
    
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/   

高工
2015-01-06 21:49:50     打赏
8楼
……

共8条 1/1 1 跳转至

回复

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