新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2020-5-26
- 在线时间
- 5 小时
|
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "key.h"
//ALIENTEK Mini STM32¿a·¢°å·¶ày′úÂë8
//PWMêä3öêμÑé
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾
int main(void)
{
u16 t;
u8 n;
u8 len;
u8 menu=0;
u16 led0pwmval=0;
u8 dir=1;
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
TIM1_PWM_Init(899,0);//2»·ÖÆμ¡£PWMÆμÂê=72000/(899+1)=80Khz
KEY_Init(); //3õê¼»ˉóë°′¼üᬽóμÄó2¼t½ó¿ú
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// éèÖÃÖD¶ÏóÅÏè¼¶·Ö×é2
uart_init(9600); //′®¿ú3õê¼»ˉÎa9600
while(1)
{
if(menu==0)
{
LED0=1;
if(USART_RX_STA&0xc000)
menu=1;
}
if(menu==1)
{
len=USART_RX_STA&0x3fff;//μÃμ½′Ë′νóêÕμ½μÄêy¾Y3¤¶è
printf("\r\nêÕμ½ÏûÏ¢£o\r\n");
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);//μè′y·¢Ëí½áêø
}
printf("\r\n\r\n");//2åèë»»DD
USART_RX_STA=0;
for(n=0;n<10;n++)
{
LED1=!LED1;
delay_ms(300);
}
menu=2;
}
if(menu==2)
{
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;
else led0pwmval--;
if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
TIM_SetCompare1(TIM1,led0pwmval);
t=KEY_Scan(0); //μÃμ½¼üÖμ
if(t)
{
menu=0;
LED0=1;
break ;
}
}
}
}
}
|
|