| 
在线时间171 小时
UID3095435
注册时间2015-3-17
NXP金币266 
 该用户从未签到 高级会员 
 
 
	积分933 
最后登录2025-10-1 | 
 
| 用串口控制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++;
            
    }
    
} 
 
 
 | 
 |