久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: sk6812藍(lán)牙燈帶控制stm32源碼 [打印本頁(yè)]

作者: prefect_long    時(shí)間: 2017-12-14 19:26
標(biāo)題: sk6812藍(lán)牙燈帶控制stm32源碼
藍(lán)牙控制,格式是(first位置,finally位置,顏色32位數(shù)據(jù)),控制任一一段燈的顏色,還有跑馬燈可以修改,由于我的燈帶數(shù)目是60 ,所以位置是0到60設(shè)置。

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "timer.h"
  6.   
  7. int main(void)
  8. {
  9.         u8 r,g,b,w;  //4個(gè)字節(jié)  32位
  10.   u32 lednum[60];
  11.         u32 yanse;
  12.         u8 t;
  13.         u8 len,r1,r2,g1,g2,b1,b2,w1,w2,R,G,B,W;       
  14.         u16 led_first,led_end;
  15.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  16.         delay_init(168);  //初始化延時(shí)函數(shù)
  17.         LED_Init();                                //初始化LED端口
  18.         uart_init(9600);        //串口初始化波特率為115200   
  19.         while(1)
  20.         {
  21.                                 if(USART_RX_STA!=0)  //判斷是否接收到數(shù)據(jù)
  22.                 {                                          
  23.                
  24.                         len=num;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
  25.                         printf("\r\n\r\n");//插入換行
  26.                         
  27.                         if(data_buff[8]>87)  r1=data_buff[8]-87;       
  28.                         else                 r1=data_buff[8]-48;         
  29.                        
  30.                         if(data_buff[9]>87)  r2=data_buff[9]-87;  
  31.       else                 r2=data_buff[9]-48;
  32.                
  33.                         if(data_buff[10]>87)  g1=data_buff[10]-87;       
  34.                         else                 g1=data_buff[10]-48;         
  35.                         if(data_buff[11]>87)  g2=data_buff[11]-87;  
  36.       else                 g2=data_buff[11]-48;
  37.                        
  38.                         if(data_buff[12]>87)  b1=data_buff[12]-87;       
  39.                         else                 b1=data_buff[12]-48;         
  40.                         if(data_buff[13]>87)  b2=data_buff[13]-87;  
  41.       else                 b2=data_buff[13]-48;
  42.                        
  43.                         if(data_buff[14]>87)  w1=data_buff[14]-87;       
  44.                         else                 w1=data_buff[14]-48;         
  45.                         if(data_buff[15]>87)  w2=data_buff[15]-87;  
  46.       else                 w2=data_buff[15]-48;
  47.                        
  48.                        
  49.                   R=r1<<4|r2;
  50.         G=g1<<4|g2;                       
  51.                              B=b1<<4|b2;
  52.                               W=w1<<4|w2;
  53.                         yanse=R<<24|G<<16|B<<8|W;
  54.                         led_first=100*(data_buff[0]-48)+10*(data_buff[1]-48)+1*(data_buff[2]-48);
  55.                   led_end=100*(data_buff[4]-48)+10*(data_buff[5]-48)+1*(data_buff[6]-48);
  56.                         printf("%d\r\n",led_first);
  57.                         printf("%d\r\n",led_end);       
  58.                         printf("%d\r\n",r1);
  59.                         printf("%d\r\n",r2);
  60.                         printf("%d\r\n",g1);
  61.                         printf("%d\r\n",g2);
  62.                         printf("%d\r\n",b1);
  63.                         printf("%d\r\n",b2);
  64.                         printf("%d\r\n",w1);
  65.                         printf("%d\r\n",w2);
  66.                         printf("%d\r\n",R);
  67.                   printf("%d\r\n",G);
  68.                         printf("%d\r\n",B);
  69.                         printf("%d\r\n",W);
  70.                         printf("%d\r\n",led_first);
  71.                         printf("%d\r\n",led_end);
  72.                         printf("yanse=%x",yanse);
  73.                         USART_RX_STA=0;
  74.                         num=0;
  75.                 }
  76. paoma_led(yanse,led_first-1,led_end-1,1);//跑馬燈,顏色,個(gè)數(shù)
  77.         }
  78. }
復(fù)制代碼

所有資料51hei提供下載:
sk6812燈帶控制.rar (453.76 KB, 下載次數(shù): 208)



作者: 是啊啊啊    時(shí)間: 2017-12-20 09:14
挺好的
作者: aa8473229    時(shí)間: 2018-1-3 09:23
不錯(cuò)呢
作者: HaoLiufu    時(shí)間: 2018-1-5 18:34
謝謝分享
作者: HaoLiufu    時(shí)間: 2018-1-5 18:35
謝謝分享
作者: janson    時(shí)間: 2018-1-6 20:49
謝謝分享
作者: ansonwn    時(shí)間: 2018-2-1 23:42
謝謝分享
作者: 110691    時(shí)間: 2018-2-12 22:01
謝謝分享
作者: ECHO_ECHE    時(shí)間: 2018-2-13 13:18
謝謝分享

作者: allielxh    時(shí)間: 2018-2-13 23:43

謝謝分享
作者: yinlianger    時(shí)間: 2018-4-1 23:40
你好,請(qǐng)教個(gè)問(wèn)題。我準(zhǔn)備用STM32F429 來(lái)控制sk6812,但嘗試了很久都點(diǎn)不亮燈,看到你的程序給了我啟發(fā),有幾點(diǎn)不明白,希望指點(diǎn)下。
1. sk6812規(guī)格書 信號(hào)1 信號(hào)0 如下,但你程序延時(shí)好像沒(méi)有按規(guī)格書來(lái)

2.__nop()延時(shí)問(wèn)題
f429 主頻180MHZ 我在調(diào)試狀態(tài)查看一個(gè)nop 耗時(shí)100ns(大的不可理解),這是為什么呢?
從你程序來(lái)看,168MHZ 一個(gè)nop 是14ns左右
  1. void delay_ns(u16 ns)  //ÑÓʱ;ns*14ns
  2. {       
  3. u16 num=ns;       
  4. for(num;num>0;num--)
  5.         {
  6. __NOP();   

  7.         }
  8.                
  9. }
復(fù)制代碼
3. 我調(diào)試發(fā)現(xiàn)GPIO 反轉(zhuǎn)都要200ns 時(shí)間,這讓我已經(jīng)無(wú)法控制stm32產(chǎn)生精確的時(shí)序了
  1. PAout_GPIO_PORT->BSRRH = PAout_GPIO_PIN
復(fù)制代碼

希望不吝賜教,這個(gè)問(wèn)題困擾我好幾天了。謝謝


作者: yinlianger    時(shí)間: 2018-4-1 23:43
你好,請(qǐng)教個(gè)問(wèn)題。我準(zhǔn)備用STM32F429 來(lái)控制sk6812,但嘗試了很久都點(diǎn)不亮燈,看到你的程序給了我啟發(fā),有幾點(diǎn)不明白,希望指點(diǎn)下。
1. sk6812規(guī)格書 信號(hào)1 信號(hào)0 如下,但你程序延時(shí)好像沒(méi)有按規(guī)格書來(lái)

2.__nop()延時(shí)問(wèn)題
f429 主頻180MHZ 我在調(diào)試狀態(tài)查看一個(gè)nop 耗時(shí)100ns(大的不可理解),這是為什么呢?
從你程序來(lái)看,168MHZ 一個(gè)nop 是14ns左右

    void delay_ns(u16 ns) //ÑÓʱ;ns*14ns
    {
    u16 num=ns;
    for(num;num>0;num--)
    {
    __NOP();

    }

    }

3. 我調(diào)試發(fā)現(xiàn)GPIO 反轉(zhuǎn)都要200ns 時(shí)間,這讓我已經(jīng)無(wú)法控制stm32產(chǎn)生精確的時(shí)序了

    PAout_GPIO_PORT->BSRRH = PAout_GPIO_PIN


希望不吝賜教,這個(gè)問(wèn)題困擾我好幾天了。謝謝
作者: prefect_long    時(shí)間: 2018-6-7 09:53
yinlianger 發(fā)表于 2018-4-1 23:40
你好,請(qǐng)教個(gè)問(wèn)題。我準(zhǔn)備用STM32F429 來(lái)控制sk6812,但嘗試了很久都點(diǎn)不亮燈,看到你的程序給了我啟發(fā),有 ...

好久沒(méi)看論壇 不好意思 可以加1098477243 一起探討
作者: prefect_long    時(shí)間: 2018-6-7 09:54
yinlianger 發(fā)表于 2018-4-1 23:43
你好,請(qǐng)教個(gè)問(wèn)題。我準(zhǔn)備用STM32F429 來(lái)控制sk6812,但嘗試了很久都點(diǎn)不亮燈,看到你的程序給了我啟發(fā),有 ...

當(dāng)時(shí)我是用示波器測(cè)得時(shí)間
作者: JUCAT    時(shí)間: 2018-6-20 15:45
給力啊大佬,這網(wǎng)站往往能下載到有用的資料!
作者: zxgpy    時(shí)間: 2018-11-14 19:15
謝謝分享
作者: hilam    時(shí)間: 2018-12-28 08:52
謝謝分享!請(qǐng)問(wèn)手機(jī)APP可以控制嗎?用哪個(gè)APP合適
作者: prefect_long    時(shí)間: 2019-1-14 03:21
hilam 發(fā)表于 2018-12-28 08:52
謝謝分享!請(qǐng)問(wèn)手機(jī)APP可以控制嗎?用哪個(gè)APP合適

手機(jī)app藍(lán)牙可以控制
作者: jxchen    時(shí)間: 2019-2-4 15:06
感謝分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: PatrickStar    時(shí)間: 2019-6-16 21:08
感謝大佬
作者: PatrickStar    時(shí)間: 2019-6-16 21:23
這里的RGB值具體是如何計(jì)算的呢
作者: robe    時(shí)間: 2019-7-16 23:42
正在調(diào)試這個(gè),感謝
作者: zhang1994    時(shí)間: 2019-9-24 07:51
感謝分享
作者: hei51ppp    時(shí)間: 2019-10-11 14:54
感謝分享學(xué)習(xí)下。。。
作者: zgf123456    時(shí)間: 2019-10-16 16:57
謝謝分享

作者: zgf123456    時(shí)間: 2019-10-16 17:38
謝謝分享





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人福利在线 | 国产视频中文字幕在线观看 | 精品久草 | 中文字幕一区二区三区在线视频 | 99精品国产在热久久 | 亚洲一区久久 | 日韩1区2区| 精品国产18久久久久久二百 | 色综合一区二区三区 | 国产男女视频 | 久久99久久98精品免观看软件 | 五月综合激情在线 | 女同久久另类99精品国产 | 久久久久国产精品一区 | 91欧美精品成人综合在线观看 | 91极品尤物在线播放国产 | 久久精品久久久久久 | 久久www免费视频 | 日韩精品一区二区三区 | 一区二区三区四区在线 | 免费看的黄网站 | 欧美精品一区二区三区四区 | 国产精品久久久久久久久图文区 | 国产精品视频一区二区三区 | 久久噜噜噜精品国产亚洲综合 | 99色综合| 北条麻妃一区二区三区在线视频 | 欧美中文字幕一区二区三区 | 日韩精品一区二区三区中文字幕 | 凹凸日日摸日日碰夜夜 | 成人av大全 | 国内自拍视频在线观看 | 人人看人人射 | 久久免费高清 | 99在线免费视频 | 日本网站免费在线观看 | 日韩视频在线免费观看 | 国产色网站 | 中文字幕亚洲视频 | 麻豆changesxxx国产 | 日日干天天干 |