在线时间169 小时
UID3095435
注册时间2015-3-17
NXP金币170
该用户从未签到
高级会员

- 积分
- 907
- 最后登录
- 2025-7-21
|
用串口控制LED灯
r:红灯亮度加
R:红灯亮度减
g:绿灯亮度加
G:绿灯亮度减
b:蓝灯亮度加
B:蓝灯亮度减
c:灯灭
鲍率9600
预计是个调色盘
但效果不好
之后再修改
- #include "mbed.h"
- //Basic PWM Led Control In Digital Port
- Serial pc(USBTX, USBRX); // tx, rx
- DigitalOut RLED(PTB22);
- DigitalOut GLED(PTE26);
- DigitalOut BLED(PTB21);
- unsigned char timebase=0;
- unsigned char Rcount=0;
- unsigned char Gcount=0;
- unsigned char Bcount=0;
- int main()
- {
- BLED=1;
- RLED=1;
- GLED=1;
- char thisChar = 0;
- printf("R = %d, G = %d, B = %d\n", Rcount,Gcount,Bcount);
- while (true)
- {
- if((Rcount-timebase)>0)
- {
- RLED=0;
- }
- if((Rcount-timebase)<=0)
- {
- RLED=1;
- }
- if((Gcount-timebase)>0)
- {
- GLED=0;
- }
- if((Gcount-timebase)<=0)
- {
- GLED=1;
- }
- if((Bcount-timebase)>0)
- {
- BLED=0;
- }
- if((Bcount-timebase)<=0)
- {
- BLED=1;
- }
- if(pc.readable())
- {
-
- thisChar = pc.getc();
- switch(thisChar)
- {
- case 'r':
- if(Rcount<255)
- {
- Rcount ++;
- }
- break;
- case 'g':
- if(Gcount<255)
- {
- Gcount ++;
- }
- break;
- case 'b':
- if(Bcount<255)
- {
- Bcount ++;
- }
- break;
- case 'R':
- if(Rcount>0)
- {
- Rcount --;
- }
- break;
- case 'G':
- if(Gcount>0)
- {
- Gcount --;
- }
- break;
- case 'B':
- if(Bcount>0)
- {
- Bcount --;
- }
- break;
- case 'c':
- Rcount=0;
- Gcount=0;
- Bcount=0;
- break;
- }
- printf("R = %d, G = %d, B = %d\n", Rcount,Gcount,Bcount);
- }
- wait_us(1);
- timebase++;
-
- }
-
- }
复制代码
|
|