可以测试使用,使用按键控制
单片机源程序如下:
- #include "stm32f10x.h"
- #include "led.h"
- #include "key.h"
- #include "sys.h"
- #include "delay.h"
- #include "sys.h"
- #include "pwm.h"
- #include "exti.h"
- #include "usart.h"
- uint16_t indexWave[] = {50,100,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850,900};
- void EXTI4_IRQHandler(void)
- {
- static uint16_t pwm_index = 0;
- delay_ms(10);
- if(KEY0==0)
- {
- TIM_SetCompare2(TIM3,indexWave[pwm_index]);
- pwm_index++;
- if( pwm_index >= 7){
- pwm_index=0;
- }
- }
- EXTI_ClearITPendingBit(EXTI_Line4); //清除LINE4上的中断标志位
- }
- //外部中断2服务程序
- int main(void)
- {
- EXTIX_Init();
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
- delay_init(); //初始化延时函数
- uart_init(9600);
- led_init(); //初始化与LED连接的硬件接口
- KEY_Init();
- TIM3_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz
- while(1);
- }
复制代码
所有资料51hei提供下载:
呼吸灯 1.7z
(175.42 KB, 下载次数: 62)
|