按鍵可調(diào)占空比
輸出端PC6
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "pwm.h"
- #include "exti.h"
- extern void TIM3_PWM_Init(u16 arr,u16 psc);
- extern void TIM4_PWMINPUT_INIT(u16 arr,u16 psc);
- extern void TIM5_PWMINPUT_INIT(u16 arr,u16 psc);
- extern u16 period;
- extern u16 duty ;
- extern u8 CollectFlag ;
- extern u32 b;
- extern u16 c;
- extern u16 d;
- extern u16 period1;
- extern u16 duty1 ;
- extern u8 CollectFlag1 ;
-
- int main(void)
- {
- u8 x=0;
- u8 y=0;
- d=0;
- // u8 lcd_id[12]; //存放LCD ID字符串
- delay_init(); //延時函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
- uart_init(115200); //串口初始化為115200
- LED_Init(); //LED端口初始化
- LCD_Init();
- EXTIX_Init(); //外部中斷初始化
- // TIM3_PWM_Init(1000-1,72-1); //1KHZ周期
- // TIM_SetCompare1(TIM3,200); //設置占空比
- // TIM_SetCompare2(TIM3,400); //設置占空比
- // TIM_SetCompare3(TIM3,600); //設置占空比
- // TIM_SetCompare4(TIM3,800); //設置占空比
- TIM4_PWMINPUT_INIT(0xffff,7); //pwm輸入初始化以1M的頻率捕捉
- TIM5_PWMINPUT_INIT(0xffff,71); //pwm輸入初始化以1M的頻率捕捉
- POINT_COLOR=RED;
- POINT_COLOR=RED;
- LCD_Clear(WHITE);
- LED0=0;
- while(1)
- {
- POINT_COLOR=RED;
- LCD_ShowString(30,40,210,24,24,"WarShip STM32 ^_^");
- if(!CollectFlag)
- {
- printf("duty = %d%% \r\n",duty*100/period); //打印占空比
- printf("cycle = %dKHz\r\n",1000/period);//打印周期另一種叫法
- printf("period = %dus\r\n",period); //打印周期
- LCD_ShowString(30,170,210,12,12,"A duty=");
- LCD_ShowString(30,190,210,12,12,"A period=");
- LCD_ShowNum(90,170,duty*100/period,12,12);
- LCD_ShowNum(90,190,1000/period,12,12);
- LCD_ShowString(170,190,210,12,12,"KHZ");
- CollectFlag = 1;
- }
- if(!CollectFlag1)
- {
- printf("duty = %d%% \r\n",duty*100/period); //打印占空比
- printf("cycle = %dKHz\r\n",1000/period);//打印周期另一種叫法
- printf("period = %dus\r\n",period); //打印周期
- LCD_ShowString(30,210,210,12,12,"B duty=");
- LCD_ShowString(30,230,210,12,12,"B period=");
- LCD_ShowNum(90,210,duty1*100/period1,12,12);
- LCD_ShowNum(90,230,72000000/(period1*c),12,12);
- LCD_ShowString(170,230,210,12,12,"KHZ");
- CollectFlag1 = 1;
- x=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
- y=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);
-
- LCD_ShowNum(90,270,1000000,12,12);
- LCD_ShowNum(90,290,c,12,12);
-
-
- }
- delay_ms(10);
- }
- }
復制代碼
所有資料51hei提供下載:
按鍵可調(diào)pwm(頻率,占空比).rar
(366.37 KB, 下載次數(shù): 98)
2018-7-17 02:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|