我通过这一部分代码关不掉ws2812,我打印出来键值发生了改变
- void scan()
- {
- if(key == 0)
- {
- delay_ms(1);
- if(key == 0)
- {
- key_flag = (key_flag + 1)%4;
- }
- while(!key);
- delay_ms(1);
- }
- switch(key_flag)
- {
- case 0:{red_flag = 0;green_flag = 0;blue_flag = 0;Update_Pwm(2,0);}break;
- case 1:{red_flag = 1;green_flag = 0;blue_flag = 0;Update_Pwm(2,99);}break;
- case 2:{red_flag = 0;green_flag = 0;blue_flag = 1;Update_Pwm(2,80);}break;
- case 3:{red_flag = 0;green_flag = 1;blue_flag = 0;Update_Pwm(2,60);}break;
- }
- // if(key_flag == 0)
- // {
- // red_flag = 0;green_flag = 0;blue_flag = 0;Update_Pwm(2,0);
- // }
- // else if(key_flag == 1)
- // {
- // red_flag = 1;green_flag = 0;blue_flag = 0;Update_Pwm(2,99);
- // }
- // else if(key_flag == 2)
- // {
- // red_flag = 0;green_flag = 1;blue_flag = 0;Update_Pwm(2,80);
- // }
- // else if(key_flag == 3)
- // {
- // red_flag = 0;green_flag = 0;blue_flag = 1;Update_Pwm(2,60);
- // }
- // else if(key_flag == 5)
- // {
- // red_flag = 0;green_flag = 0;blue_flag = 0;
- // }
- }
- /*************** Ö÷º¯Êý *******************************/
-
- void main(void)
- {
- P_SW2 |= 0X80;
- P0M0 = 0X00;
- P0M1 = 0X00;
- P2M0 = 0X00;
- P2M1 = 0X00;
- P4M0 = 0X00;
- P4M1 = 0X00;
- P5M0 = 0X00;
- P5M1 = 0X00;
- P1M1 = 0x00;
- P1M0 = 0x00;
- P3M1 = 0x00;
- P3M0 = 0x10;
-
- P1M1 &= 0xFE; P1M0 &= 0xFE; //??P1.0?????(??2?RxD)
- P1M1 &= 0xFD; P1M0 |= 0x02; //??P1.1?????(??2?TxD)
- P3M1 &= 0xFE; P3M0 &= 0xFE; //??P3.0?????(??1?RxD)
- P3M1 &= 0xFD; P3M0 |= 0x02; //??P3.1?????(??1?TxD)
-
- SPI_Config(0, 1); //SPI³õʼ»¯º¯Êý, ²ÎÊý: SPI_io: Çл»µ½µÄIO, 0: Çл»µ½P1.2(»òP5.4) P1.3 P1.4 P1.5, 1: Çл»µ½P2.2 P2.3 P2.4 P2.5, 2: Çл»µ½P5.4 P4.0 P4.1 P4.3, 3: Çл»µ½P3.5 P3.4 P3.3 P3.2,
- pwm_init(2);
- uart1_init();
- Uart2_Init();
- EA = 1;
- while (1)
- {
-
- scan();
- if(key_flag == 1 || key_flag == 2 || key_flag == 3)
- {
- green_huxi();blue_huxi();red_huxi();
- }
- uart1_send_byte(key_flag);
-
-
- }
- }
复制代码
|