PWM控制舵机 按键调节实验 ,STM32MINI版专用
单片机源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "pwm.h"
- #include "key.h"
- #include "stm32f10x_tim.h"
- //ALIENTEK Mini STM32开发板范例代码15
- //ADC实验
-
- int main(void)
- {
- u16 adcx,adcx1;
- float temp;
- u16 dacval=25;
- u8 key;
- delay_init(); //延时函数初始化
- uart_init(9600); //串口初始化为9600
- LCD_Init(); //初始化LCD
- TIM1_PWM_Init(899,1439);
- KEY_Init(); //按键初始化
-
- TIM1->CCR4=dacval;
- POINT_COLOR=RED;//设置字体为红色
- LCD_ShowString(60,50,200,16,16,"Mini STM32");
- LCD_ShowString(60,70,200,16,16,"DAC TEST");
- LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(60,110,200,16,16,"2014/3/9");
- LCD_ShowString(60,130,200,16,16,"WK_UP:+ KEY0:-");
- //显示提示信息
- POINT_COLOR=BLUE;//设置字体为蓝色
- LCD_ShowString(60,150,200,16,16,"DAC VAL:");
- LCD_ShowString(60,170,200,16,16,"DAC VOL:");
- LCD_ShowString(60,190,200,16,16,"ADC VOL:");
- LCD_ShowxNum(124,170,dacval,3,16,0);
-
- while(1)
- {
-
- key=KEY_Scan(0);
- if(key==KEY1_PRES)
- {
- dacval+=10;
- TIM_SetCompare4(TIM1,dacval);
- LCD_ShowxNum(124,170,dacval,3,16,0);
- }
- if(key==KEY0_PRES)
- {
- dacval-=10;
- TIM_SetCompare4(TIM1,dacval);
- LCD_ShowxNum(124,170,dacval,3,16,0);
- }
- if(key==WKUP_PRES)
- {
- dacval=25;
- TIM_SetCompare4(TIM1,dacval);
- LCD_ShowxNum(124,170,dacval,3,16,0);
- }
- delay_ms(10);
- }
- }
- //PA0与1820相连,按键不起作用;仿真不一定可信
- //50Hz ccr1:25---135; 0-210度 第一次与最后一次的角度过大
- //信息口IO口:A.11
- //PB6,7,8,9
复制代码
所有资料51hei提供下载:
PWM控制舵机 按键调节实验.rar
(343.04 KB, 下载次数: 201)
|