标题:
STM32103C8T6驱动ws2812(HAL库版)
[打印本页]
作者:
wjh88888888
时间:
2022-3-4 19:53
标题:
STM32103C8T6驱动ws2812(HAL库版)
该程序暂时只能点亮一个WS2812,更多功能还在探索中
单片机源程序如下:
#include "ws2812.h"
void write_data(uint8_t Ri,uint8_t Gi,uint8_t Bi)
{
uint8_t jishu=0x01,i;
for(i=0;i<8;i++)
{
if(Ri&jishu)
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(4);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(4);
}
else
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(2);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(6);
}
}
for(i=0;i<8;i++)
{
if(Gi&jishu)
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(4);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(4);
}
else
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(2);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(6);
}
}
for(i=0;i<8;i++)
{
if(Bi&jishu)
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(4);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(4);
}
else
{
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_SET);
delay_NOP_us(2);
HAL_GPIO_WritePin(WS2812_OUT_GPIO_Port,WS2812_OUT_Pin,GPIO_PIN_RESET);
delay_NOP_us(6);
}
}
}
/**
* @funNm : delay_sys_us
* @brief : 延时nus
* @param : nus:要延时的us数. 0~204522252(最大值即2^32/fac_us@fac_us=168)
* @retval: void
*/
void delay_NOP_us(uint16_t Delay)//1个delay,大概1.5us
{
uint32_t cnt = Delay * 8;
uint32_t i = 0;
for(i = 0; i < cnt; i++)__NOP();
}
复制代码
Keil代码下载 hal库:
WS2812.7z
(5.15 MB, 下载次数: 59)
2022-3-4 23:30 上传
点击文件名下载附件
下载积分: 黑币 -5
屏幕截图 2022-03-04 195212.png
(77.7 KB, 下载次数: 146)
下载附件
2022-3-4 19:52 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1