STM32控制RGB(WS2812B)灯 ,纳秒(ns)级延时配置

您所在的位置:网站首页 ns设置时间 STM32控制RGB(WS2812B)灯 ,纳秒(ns)级延时配置

STM32控制RGB(WS2812B)灯 ,纳秒(ns)级延时配置

2024-02-12 02:20| 来源: 网络整理| 查看: 265

一:WS2812B灯介绍:

  1: 脚位:

     

 

2:数据

 

0码:高电平时间220ns-500ns           低电平时间750ns-2us

1码:高电平时间750ns-2us               低电平时间220ns-500ns

复位码:300us以上的低电平

由24位数据控制,高8bit控制绿灯,中8bit控制红灯,低8bit控制蓝灯。

二:STM32介绍

由于STM32时钟教学时钟配置72兆,按照计算纳秒延时应该是可以的,可是通过实际测试,可能由于单条指令也会时间延时,所以延时达不到纳秒,所以只能通过单条指令循环的方法来实现纳秒延时。延时程序如下:

void delay_ns(u32 nus){ while(nus--); }

以下为控制6个灯不同颜色的程序:

uint8_t rgb_data[18] = {0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x00,0xFF,0xFF,0x00,0x00,0x7F,0xFF}; void delay_ns(u32 nus){ //延时程序n为1时大概延时时间为370ns左右 while(nus--); } void send_code(uint8_t * sdata){ //发送亮度数据 uint8_t i = 0,n = 0; uint8_t x = 0,y = 0,z = 0; for(x = 0;x < 18;x++){ //发送18字节数据;18 = 一个灯3字节数据*6个灯 n = sdata[x]; for(y = 0;y < 8;y++){ z = ((n


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3