stm32f103R6 PWM控制蜂鸣器频率串口输出(附带源码和仿真图)

[复制链接]
查看83 | 回复0 | 2020-6-4 10:27:44 | 显示全部楼层 |阅读模式
其中利用了system,TIM2,USART1,按键中断等stm32基本设置。 完整源码和仿真文件.7z (315.86 KB, 售价: 3 工控币)
123647ht5z6hyjnijj66r6.png 150928vuu22wjancasgy0c.png 123442ljz2hns2mcgkeigh.png 部分源码
  1. void Delay( uint32_t t );
  2. void RCC_Configuration(void);
  3. void EXTI_Configration(void);
  4. void NVIC_Configration(void);

  5. uint16_t Key_Value=0;

  6. void Delay( uint32_t t )
  7. {      
  8.                 while(--t);
  9. }

  10. void RCC_Configration(void)
  11. {
  12. ErrorStatus HSEStartUpStatus;         /* 定义枚举类型变量 HSEStartUpStatus */

  13.         /* 复位系统时钟设置*/
  14.         RCC_DeInit();
  15.         /* 开启HSE*/
  16.         RCC_HSEConfig(RCC_HSE_ON);
  17.         /* 等待HSE起振并稳定*/
  18.         HSEStartUpStatus = RCC_WaitForHSEStartUp();
  19.         /* 判断HSE起是否振成功,是则进入if()内部 */
  20.         if(HSEStartUpStatus == SUCCESS)
  21.         {
  22.                 /* 选择HCLK(AHB)时钟源为SYSCLK 1分频 */
  23.                 RCC_HCLKConfig(RCC_SYSCLK_Div1);
  24.                 /* 选择PCLK2时钟源为 HCLK(AHB) 1分频 */
  25.                 RCC_PCLK2Config(RCC_HCLK_Div1);
  26.                 /* 选择PCLK1时钟源为 HCLK(AHB) 8分频   9M*/
  27.                 RCC_PCLK1Config(RCC_HCLK_Div1);
  28. //                /* 选择锁相环(PLL)时钟源为HSE 1分频,倍频数为4,则PLL输出频率为 8MHz * 4 = 32MHz */
  29. //                RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_4);
  30. //                /* 使能PLL */
  31. //                RCC_PLLCmd(ENABLE);
  32. //                /* 等待PLL输出稳定 */
  33. //                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
  34.                 /* 选择SYSCLK时钟源为HSE */
  35.                 RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
  36.                 /* 等待HSE成为SYSCLK时钟源 */
  37.                 while(RCC_GetSYSCLKSource() != 0x04);
  38.         }
  39. }      
  40. void EXTI_Configration()
  41. {
  42.                 EXTI_InitTypeDef  EXTI_InitStructure;
  43.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
  44.                 //调用GPIO_EXTILineConfig函数分配引脚
  45.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
  46.                 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource13);
  47.     //调用EXTI_Init函数配置外部中断
  48.           EXTI_InitStructure.EXTI_Line=EXTI_Line0|EXTI_Line13;
  49.           EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
  50.           EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
  51.           EXTI_InitStructure.EXTI_LineCmd=ENABLE;
  52.           EXTI_Init(&EXTI_InitStructure);
  53.          
  54. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则