搜索
bottom↓
回复: 42

STM32 驱动192x64全彩点阵屏 亮度问题

[复制链接]

出0入4汤圆

发表于 2019-12-11 09:44:20 | 显示全部楼层 |阅读模式
大家好!

屏幕亮度如何提高? 下面代码没办法优化了,最高速度等级优化、超频240MHz都只有这个亮度
芯片是STM32F407VE ,点阵屏是192*64 彩屏

u16 LED_SCAN_PWM_RGB555[8]={128,128/2,128/4,128/8,128/16};    //5级灰度
u16 LED_SCAN_COL_RGB555[8][16]={0};    //每一行的开始坐标


//初始化计算好坐标
void LED_Scan_Init(u16 led_w)
{
   u8 i=0;

   for (i=0; i<16; i++)
   {
       LED_SCAN_COL_RGB555[0][i]=led_w*i*2;
       LED_SCAN_COL_RGB555[1][i]=led_w*16*2+LED_SCAN_COL_RGB555[0][i];
       LED_SCAN_COL_RGB555[2][i]=led_w*32*2+LED_SCAN_COL_RGB555[0][i];
       LED_SCAN_COL_RGB555[3][i]=led_w*48*2+LED_SCAN_COL_RGB555[0][i];
   }
}

//循环扫描
void LED_Scan(u8 *pic)  //传输 16位 555色图片数据
{
    int k=0,j=0,i=0,n=0;
    u32 col[4]={0};
    u32 r=0,g=0,b=0;
    u32 v[4]={0};
   
    for (k=0; k<5; k++)
    {        
        for (j=0; j<16; j++) //行数
        {
            col[0]=LED_SCAN_COL_RGB555[0][j];
            col[1]=LED_SCAN_COL_RGB555[1][j];
            col[2]=LED_SCAN_COL_RGB555[2][j];
            col[3]=LED_SCAN_COL_RGB555[3][j];        
            for (i=0; i<192; i++) //列数
            {
                r=0; g=0; b=0;
               
                v[0]=pic[col[0]]<<8 | pic[col[0]+1]<<0;
                v[1]=pic[col[1]]<<8 | pic[col[1]+1]<<0;
                v[2]=pic[col[2]]<<8 | pic[col[2]+1]<<0;
                v[3]=pic[col[3]]<<8 | pic[col[3]+1]<<0;               
               
                col[0]+=2;
                col[1]+=2;
                col[2]+=2;
                col[3]+=2;                 
         
                if (v[0] & LED_SCAN_BIT_RGB555_R[k]) r |=1<<0;
                if (v[0] & LED_SCAN_BIT_RGB555_G[k]) g |=1<<0;
                if (v[0] & LED_SCAN_BIT_RGB555_B[k]) b |=1<<0;
               
                if (v[1] & LED_SCAN_BIT_RGB555_R[k]) r |=1<<1;
                if (v[1] & LED_SCAN_BIT_RGB555_G[k]) g |=1<<1;
                if (v[1] & LED_SCAN_BIT_RGB555_B[k]) b |=1<<1;

                if (v[2] & LED_SCAN_BIT_RGB555_R[k]) r |=1<<2;
                if (v[2] & LED_SCAN_BIT_RGB555_G[k]) g |=1<<2;
                if (v[2] & LED_SCAN_BIT_RGB555_B[k]) b |=1<<2;

                if (v[3] & LED_SCAN_BIT_RGB555_R[k]) r |=1<<3;
                if (v[3] & LED_SCAN_BIT_RGB555_G[k]) g |=1<<3;
                if (v[3] & LED_SCAN_BIT_RGB555_B[k]) b |=1<<3;  

                GPIOE->ODR=r | g<<8;      // R1-R4= GPIOE_PIN0...3    G1-G4=GPIOE_PIN8...11         
                GPIOD->ODR=j | b<<8;      //ABCD=GPIOD_PIN0...3   B1-B4=GPIOD_PIN8...11
                LED_SCAN_CLK_L;//=0;      
                LED_SCAN_CLK_H;//=1;
            }     
            LED_SCAN_OE_L;  
            LED_SCAN_STB_H;//=0;            
            LED_SCAN_STB_L;//=1
            
            BSP_Delay_us(LED_SCAN_PWM_RGB555[k]));
            LED_SCAN_OE_H;
              
            //LED_SCAN_PWM_SET(LED_SCAN_PWM_RGB555[k]);
            //LED_SCAN_PWM_ON();
            //BSP_Delay_us(100);  
            //LED_SCAN_PWM_OFF();        
        }         
    }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入4汤圆

 楼主| 发表于 2019-12-11 09:45:02 | 显示全部楼层
手机相机问题,实际上亮度没这么高的

出0入4汤圆

发表于 2019-12-11 09:50:03 | 显示全部楼层
这不是单片机干的活,压榨干也就那球样。。。

出0入4汤圆

发表于 2019-12-11 09:59:01 | 显示全部楼层
led亮度跟点亮的时间有关系,把每行的扫描时间拉宽一点试试。另外如果有控制芯片,控制芯片的驱动电流影响亮度

出10入113汤圆

发表于 2019-12-11 10:33:58 | 显示全部楼层
太快了亮度降低

出0入4汤圆

 楼主| 发表于 2019-12-11 10:45:23 | 显示全部楼层
wajlh 发表于 2019-12-11 09:59
led亮度跟点亮的时间有关系,把每行的扫描时间拉宽一点试试。另外如果有控制芯片,控制芯片的驱动电流影响 ...

时间拉宽之后,屏幕就会闪烁的厉害

出0入4汤圆

发表于 2019-12-11 11:03:19 | 显示全部楼层
总共16行把,理论上每行的点亮时间是1/16S,正常情况下这个亮度足够了。以前做常规屏幕的时候,都是点亮第一行的时候,传输下一行的数据,传输完成后再熄灭前一行,然后点亮后一行,如此循环,  这样传输数据的时间不占用时间。 没仔细看你的代码,我猜你现在的做法是传输第一行数据,然后点亮第一行,然后时间到了后,熄灭第一行,传输下一行数据,然后点亮下一行,这样循环的。这样做的话数据传输时间占用了不少,减少了LED的有效点亮时间了。

出0入4汤圆

 楼主| 发表于 2019-12-11 11:18:07 | 显示全部楼层
wajlh 发表于 2019-12-11 11:03
总共16行把,理论上每行的点亮时间是1/16S,正常情况下这个亮度足够了。以前做常规屏幕的时候,都是点亮第 ...

非常感谢!我尝试一下这种思路,因为屏幕不算太大,没有用FPGA的方案,做后之后我再发出来

出0入0汤圆

发表于 2019-12-12 08:11:45 | 显示全部楼层
你这个是什么屏

出0入0汤圆

发表于 2019-12-12 08:29:22 | 显示全部楼层
告诉你个真理,少用if else
能轻松提高30%

出0入0汤圆

发表于 2019-12-12 09:48:44 | 显示全部楼层
jjj 发表于 2019-12-12 08:29
告诉你个真理,少用if else
能轻松提高30%

我就经常用这个  if  else   
有什么好办法可以优化这个?  求指点

出0入4汤圆

 楼主| 发表于 2019-12-12 09:49:42 | 显示全部楼层
wzbwzb 发表于 2019-12-12 08:11
你这个是什么屏

LED 全彩点阵屏

出0入4汤圆

 楼主| 发表于 2019-12-12 09:50:53 | 显示全部楼层
jjj 发表于 2019-12-12 08:29
告诉你个真理,少用if else
能轻松提高30%

你的意思是用类似   (A>B) ? A=1: B=2?

出0入4汤圆

 楼主| 发表于 2019-12-12 09:51:58 | 显示全部楼层
vvzhaodan 发表于 2019-12-12 09:50
你的意思是用类似   (A>B) ? A=1: B=2?

我之前用过位映射  PAout(0)=HL  这种效率没有直接操作寄存器效率高

出0入0汤圆

发表于 2019-12-12 10:01:36 | 显示全部楼层
vvzhaodan 发表于 2019-12-12 09:51
我之前用过位映射  PAout(0)=HL  这种效率没有直接操作寄存器效率高

就是这个呀,我之前就用这个,  比if else 有显著提高,

出0入4汤圆

 楼主| 发表于 2019-12-12 10:02:54 | 显示全部楼层
wajlh 发表于 2019-12-11 11:03
总共16行把,理论上每行的点亮时间是1/16S,正常情况下这个亮度足够了。以前做常规屏幕的时候,都是点亮第 ...

按照你的方法,在点亮的时候继续发送下一行的数据,效率提高了不少,速度等级优化+ 超频1.5倍应该会更好。

但疑问是我如何一边扫描,一边做图片解码呢, 如GIF,如果是预设图片到SPI FLASH,通过 DMA传输是不影响实时扫描效率,但解码会影响,分时处理有什么好的方案?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-12-12 10:05:11 | 显示全部楼层
jjj 发表于 2019-12-12 10:01
就是这个呀,我之前就用这个,  比if else 有显著提高,

效率很低,你不信可以写个代码试试,通过定时器记下运行时间。

出0入0汤圆

发表于 2019-12-12 10:21:15 | 显示全部楼层
我没做灰度屏,我用这种办法做过单色屏,  2048*128   刷新率60HZ   LPC1754  不超频

出0入4汤圆

 楼主| 发表于 2019-12-12 10:31:57 | 显示全部楼层
jjj 发表于 2019-12-12 10:21
我没做灰度屏,我用这种办法做过单色屏,  2048*128   刷新率60HZ   LPC1754  不超频 ...

这个主要瓶颈在IO翻转速率上,我估计用STM32F7效果会好一点,但成本会比FPGA要高了。

小面积 MCU
中面积 MCU+FPGA 通过 SPI或FSMC传输
大面积 MCU + FPGA 通过两个共享内存交换数据

出0入4汤圆

发表于 2019-12-12 13:40:01 | 显示全部楼层
vvzhaodan 发表于 2019-12-12 10:02
按照你的方法,在点亮的时候继续发送下一行的数据,效率提高了不少,速度等级优化+ 超频1.5倍应该会更好 ...

你可以算下理论时间,够不够解码的。

出0入4汤圆

 楼主| 发表于 2019-12-16 17:23:56 | 显示全部楼层
kencent 发表于 2019-12-16 12:48
然后DMA翻转速度具体有什么要求?

不需要网口,主要是更新数据相对比串口要快许多

出140入8汤圆

发表于 2019-12-16 23:00:59 | 显示全部楼层
这屏幕感觉有点贵呢!!

出0入0汤圆

发表于 2019-12-16 23:33:02 | 显示全部楼层
leiyitan 发表于 2019-12-16 23:00
这屏幕感觉有点贵呢!!

不会,100多块,淘宝淘吧,64x64的五六十,三块拼起来就可以了,其实有全彩的控制板,六七十就有了,通过手机app设置小时内容,当然也可以显示图片啊时间等,还有各种特效,除了时间精度不高外比自己做方便很多,,这是我用了四块p2.5的点阵拼的128x128的屏,温湿度的话接上传感器就出来了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-12-17 12:43:17 | 显示全部楼层
JY-MCU 发表于 2019-12-16 23:33
不会,100多块,淘宝淘吧,64x64的五六十,三块拼起来就可以了,其实有全彩的控制板,六七十就有了,通过 ...

做的很漂亮

出0入4汤圆

 楼主| 发表于 2019-12-18 00:18:20 | 显示全部楼层
STM32F4测试 RGB 555的全彩效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-12-18 00:21:17 | 显示全部楼层
这是测试视频,苹果手机拍的,闪烁效果应该能接受吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-12-18 00:24:09 | 显示全部楼层
与上面图片好像颜色有点不对,调了很久还是一样,红、绿、蓝颜色比较窄,正常应该要宽

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-12-18 00:34:18 | 显示全部楼层
本帖最后由 vvzhaodan 于 2019-12-18 00:36 编辑

视频播放方案采用 SPI_DMA
比如正在扫描缓冲区BUF1,此时DMA读取数据到BUF2,通过查询DMA读取完毕后,扫描指针指向BUF2以此交替,视频效果出来了

void LED_Show_Perioidc(void)
{
    static u32 addr=0;
    static u32 cnt=0;
    static u8 change=1;
    static u8 change2=0;
   
    if (change>0)
    {
        LED_Scan_Show(APP_LED_ReadFile);  //扫描显示1
        if (change==1)
        {
            change=2;
            DEV_ROM_LED_Pic_Read(addr,APP_LED_ReadFile2,sizeof(APP_LED_ReadFile2));   //读取缓冲区2
            addr+=sizeof(APP_LED_ReadFile2);
            if (addr>=APP_LED_PIC_Len) addr=0;
        }
        else if (change==2)
        {
            if (DEV_W25X_DMA_Read_Busy()==0)  //当缓冲读取完毕更新
            {
                change=3;
            }
        }
        else if (change==3)
        {
            if (HAL_GetTick()-cnt>=50)  //50毫秒切换图片显示
            {
                cnt=HAL_GetTick();
                change=0;
                change2=1;
            }
        }
    }
    else
    {
        LED_Scan_Show(APP_LED_ReadFile2); //扫描显示2
        if (change2==1)
        {
            change2=2;
            DEV_ROM_LED_Pic_Read(addr,APP_LED_ReadFile,sizeof(APP_LED_ReadFile));  //读取缓冲区1
            addr+=sizeof(APP_LED_ReadFile);
            if (addr>=APP_LED_PIC_Len) addr=0;
        }
        else if (change2==2)
        {
            if (DEV_W25X_DMA_Read_Busy()==0)  //当缓冲读取完毕更新
            {
                change2=3;
            }
        }
        else if (change2==3)
        {
            if (HAL_GetTick()-cnt>=50) //50毫秒切换图片
            {
                cnt=HAL_GetTick();
                change2=0;
                change=1;
            }
        }      
    }
}

void DEV_W25X_DMA_Read_Wait(u32 ReadAddr, u8* pBuffer,u16 NumByteToRead)   
{
    u16 i=0;   
    u8 tx[4]={0};
   
    if (DEV_W25X_DMA_SET_TYPE!=DEV_W25X_DMA_GET_TYPE) return;
   
    tx[i++]=(W25X_ReadData);         //发送读取命令   
    tx[i++]=((u8)((ReadAddr)>>16));  //发送24bit地址   
    tx[i++]=((u8)((ReadAddr)>>8));   
    tx[i++]=((u8)ReadAddr);         
    //memset(pBuffer,0xFF,NumByteToRead);
   
    DEV_W25X_DMA_CS=0;                            //使能器件   
    DEV_W25X_DMA_SPI_RX_MODE(1);
    DEV_W25X_DMA_SPI_TX_MODE(1);   
    DEV_W25X_DMA_SPI_RW_BUFF(tx,tx,4);
    DEV_W25X_DMA_SPI_RX_MODE(1);
    DEV_W25X_DMA_SPI_TX_MODE(0);  
    tx[0]=0xFF;
    if (DEV_W25X_DMA_SPI_RW_BUFF_WAIT(tx,pBuffer,NumByteToRead)!=0)
    {
        DEV_W25X_DMA_CS=1;   
        return;      
    }
}

//等待空闲
void DEV_W25X_DMA_Wait_Busy(u32 max_outtime)   
{   
    u32 outtime=DEV_W25X_DMA_GET_TICK_MS();
   
    // 等待BUSY位清空
    while (1)
    {
        if ((DEV_W25X_DMA_ReadSR()&0x01)!=0x01) return;
        if (DEV_W25X_DMA_GET_TICK_MS()-outtime>=max_outtime) break;
        DEV_W25X_DMA_IWDG();
    }
    DEV_W25X_DMA_GET_TYPE=0x00;
}  


u8 BSP_SPI_SendRev(u8 id, u8 data)
{
    u8 rev=0;
//    u8 err=0;
    u32 cnt=0;   
   
   
    for (cnt=0; cnt<200; cnt++)
    {
       if (__HAL_SPI_GET_FLAG(&BSP_SPI_Handle[id],SPI_FLAG_TXE)==0);
       else break;
    }
    BSP_SPI[id]->DR=data;
    for (cnt=0; cnt<200; cnt++)
    {
       if (__HAL_SPI_GET_FLAG(&BSP_SPI_Handle[id],SPI_FLAG_RXNE)==0);
       else break;
    }
    rev=BSP_SPI[id]->DR;
   
    //err=HAL_SPI_TransmitReceive(&BSP_SPI_Handle[id], &data, &rev, 1, 100);
    return rev;
}

u32 BSP_SPI_Init(u8 id)
{
    u32 err=0;
    SPI_TypeDef *SPIx=BSP_SPI[id];
   
    BSP_SPI_Handle[id].Instance               = SPIx;
    BSP_SPI_Handle[id].Init.Direction         = SPI_DIRECTION_2LINES;
    BSP_SPI_Handle[id].Init.Mode              = SPI_MODE_MASTER;
    BSP_SPI_Handle[id].Init.DataSize          = SPI_DATASIZE_8BIT;
    BSP_SPI_Handle[id].Init.CLKPolarity       = SPI_POLARITY_HIGH;
    BSP_SPI_Handle[id].Init.CLKPhase          = SPI_PHASE_2EDGE;
    BSP_SPI_Handle[id].Init.NSS               = SPI_NSS_SOFT;
    BSP_SPI_Handle[id].Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
    BSP_SPI_Handle[id].Init.FirstBit          = SPI_FIRSTBIT_MSB;
    BSP_SPI_Handle[id].Init.CRCPolynomial     = 7;
    BSP_SPI_Handle[id].Init.CRCCalculation    = SPI_CRCCALCULATION_DISABLE;
    BSP_SPI_Handle[id].Init.TIMode            = SPI_TIMODE_DISABLE;  

    err=HAL_SPI_Init(&BSP_SPI_Handle[id]);
    if(err!= HAL_OK) return err;
   
    __HAL_SPI_ENABLE(&BSP_SPI_Handle[id]);
    return err;
}

void BSP_SPI_DMA_SendRevBuff(u8 id, u8 *tx,u8 *rx,u16 len)
{
    u32 err=0,cur_time=HAL_GetTick();
   
    err=HAL_SPI_TransmitReceive_DMA(&BSP_SPI_Handle[id],tx,rx,len);
    if (err!=HAL_OK) return;
   
    while (1)
    {
        if (__HAL_DMA_GET_COUNTER(&BSP_DMA_SPI_RX_Handle[id])==len && __HAL_DMA_GET_COUNTER(&BSP_DMA_SPI_TX_Handle[id])==0) break;
        if (HAL_GetTick()-cur_time>=100)
        {
            err=1;
            break;
        }
    }
    err=HAL_SPI_Abort(&BSP_SPI_Handle[id]);   
    if (err==0) return;
}

u32 BSP_SPI_DMA_SendRevBuff_Wait(u8 id, u8 *tx,u8 *rx,u16 len)
{
    u32 err=0;
        
    BSP_DMA_Send_Count=len;
    err=HAL_SPI_TransmitReceive_DMA(&BSP_SPI_Handle[id],tx,rx,len);
    if (err!=HAL_OK) return err;

    return err;
}

u32 BSP_SPI_DMA_IS(u8 id)
{
    u32 err=0;

    if (__HAL_DMA_GET_COUNTER(&BSP_DMA_SPI_RX_Handle[id])==BSP_DMA_Send_Count && __HAL_DMA_GET_COUNTER(&BSP_DMA_SPI_TX_Handle[id])==0)
    {
        BSP_DMA_Send_Count=0;
        err=HAL_SPI_Abort(&BSP_SPI_Handle[id]);
        if (err!=HAL_OK) return 0;     
        else return 1;
    }
    else return 1;
}

出0入0汤圆

发表于 2020-3-12 14:54:14 | 显示全部楼层
楼主,stmf407能播放视频不?卡顿不

出0入4汤圆

发表于 2020-3-12 15:45:14 | 显示全部楼层
很漂亮啦

出0入4汤圆

 楼主| 发表于 2020-3-14 00:42:07 来自手机 | 显示全部楼层
cat3902982 发表于 2020-3-12 14:54
楼主,stmf407能播放视频不?卡顿不

8位色视频还不错

出0入4汤圆

 楼主| 发表于 2020-3-14 00:42:38 来自手机 | 显示全部楼层
现在已经换双核mcu了

出0入0汤圆

发表于 2020-3-14 05:17:07 来自手机 | 显示全部楼层
有意思,学习一下,之前用103驱动过,8bitRGB没做好,放弃了

出0入4汤圆

 楼主| 发表于 2020-3-17 15:16:47 | 显示全部楼层
小溪 发表于 2020-3-14 05:17
有意思,学习一下,之前用103驱动过,8bitRGB没做好,放弃了

要看驱动多大的面积,一般都是存储换时间效率。F103 驱动8位RGB332色的 128*16问题不大

出0入0汤圆

发表于 2020-3-21 23:32:34 来自手机 | 显示全部楼层
方案方向有问题。这种应该是加FPGA驱动。如果画面变化速度不高,也可以用单片机+PWM高刷芯片驱动,避免刷新率低和亮度低的问题。

出0入0汤圆

发表于 2020-3-22 06:37:43 | 显示全部楼层
vvzhaodan 发表于 2020-3-14 00:42
现在已经换双核mcu了

考虑一下用CPLD驱动方案吧

出0入0汤圆

发表于 2020-6-30 16:27:38 | 显示全部楼层
现在换双核mcu,是stm32mp157双核异构的这种么,这种的话,可以跑多少bit的rgb

出0入4汤圆

 楼主| 发表于 2020-6-30 17:59:26 | 显示全部楼层
cat3902982 发表于 2020-6-30 16:27
现在换双核mcu,是stm32mp157双核异构的这种么,这种的话,可以跑多少bit的rgb

STM32H745,一个M4核刷新扫描,另一个M7核取解码图片或读取数据,256级灰度超大点阵屏视频效果杠杠的

出0入0汤圆

发表于 2020-7-1 08:39:47 | 显示全部楼层
vvzhaodan 发表于 2020-6-30 17:59
STM32H745,一个M4核刷新扫描,另一个M7核取解码图片或读取数据,256级灰度超大点阵屏视频效果杠杠的{:lo ...

厉害了,楼主,最近在研究这个,好痛苦,都找不到资料,如果用M7单核是不是实时处理来不及,另外256级灰阶,GPIO模拟时钟需要达到多少频率,才可以和全彩LED单元板通信。

出0入4汤圆

 楼主| 发表于 2020-7-1 16:11:35 | 显示全部楼层
cat3902982 发表于 2020-7-1 08:39
厉害了,楼主,最近在研究这个,好痛苦,都找不到资料,如果用M7单核是不是实时处理来不及,另外256级灰阶,G ...

M7的话软件模拟翻转速度有108M,如果一边取图片一边刷图,那么肯定要用到DMA的,将视频通过上位机切成一张张图片,通过DMA在间将一定的时图片数据一帧帧般到刷图数据缓冲区就好了。M7的话256级灰度驱动128x512的面积绝对足够了。

出0入0汤圆

发表于 2020-7-2 11:49:56 | 显示全部楼层
本帖最后由 flaykasio 于 2020-7-2 11:57 编辑

最近也在搞这个,不过直接做的屏

出0入4汤圆

 楼主| 发表于 2020-11-5 02:53:51 | 显示全部楼层
flaykasio 发表于 2020-7-2 11:49
最近也在搞这个,不过直接做的屏

已经完成了,H750 能驱动512x64 透明屏

出0入0汤圆

发表于 2022-4-11 18:54:39 | 显示全部楼层
本帖最后由 WUJIANLING 于 2022-4-11 18:56 编辑

兄弟啊,我一直看不懂,
if (v[3] & LED_SCAN_BIT_RGB555_R[k]) r |=1<<3;
                if (v[3] & LED_SCAN_BIT_RGB555_G[k]) g |=1<<3;
                if (v[3] & LED_SCAN_BIT_RGB555_B[k]) b |=1<<3;  
到底V[3]有什么作用,三个R1G1B1已经在这里了,另外,程序里也没有PWM的控制,还有,R2G2B2在哪呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 19:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表