• 大小: 11KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-19
  • 语言: 其他
  • 标签: stm32  io  WS2813B  

资源简介

设计的目的是驱动16路灯带,灯带的目的比较简单,就是定位显示,因此不用实时驱动,只要某次显示位置变化了驱动一次就行了。局限性:驱动时关中断,不能响应其它事件。不过驱动事件极短,一般情况下还是可行。

资源截图

代码片段和文件信息

#include	“my_doIo.h“
#pragma pack(1)

/*******************************************************************************/


LEDio_out_struct ledioActTable[LEDRGBCOLUMNMAX];
unsigned char ledRGBbuf[LEDRGBDOTMAX]; //RGB数据3*1024点
//黑       白         红         蓝        黄         绿           紫色      橙色
unsigned int const rgbConstList[8]={0x0000000x00ffffff0x00ff00000x000000ff0x00ffff000x0000ff000x009400d30x00ffa500};
//unsigned int const rgbConstList[8]={0x005555550x005555550x005555550x005555550x005555550x005555550x005555550x00555555};

/**************常用7种颜色获取********************************/
unsigned int getRgbConColour(unsigned char tempi){
if(tempi>7)
tempi=7;
return rgbConstList[tempi];
}

/********指令级延时*************/
void ledio_delay(unsigned short num){
unsigned short tempDelayN;
for(tempDelayN=0;tempDelayN __NOP();__NOP();__NOP();__NOP();__NOP();
}
}
/****************************/
void Aio_P1H(void){
// HAL_GPIO_WritePin(Aio_P1_GPIO_PortAio_P1_PinGPIO_PIN_RESET);
// HAL_GPIO_WritePinWlm(Aio_P1_GPIO_PortAio_P1_PinGPIO_PIN_SET); //RESET  移位
Aio_P1_GPIO_Port->BSRR = GPIO_PIN_7_INT;
}
void Aio_P1L(void){
// HAL_GPIO_WritePin(Aio_P1_GPIO_PortAio_P1_PinGPIO_PIN_SET);
// HAL_GPIO_WritePinWlm(Aio_P1_GPIO_PortGPIO_PIN_7_LR16GPIO_PIN_RESET);
Aio_P1_GPIO_Port->BSRR = GPIO_PIN_7_L16;
}
void Aio_P2H(void){
// HAL_GPIO_WritePin(Aio_P2_GPIO_PortAio_P2_PinGPIO_PIN_RESET);
Aio_P2_GPIO_Port->BSRR = GPIO_PIN_6_INT ;
}
void Aio_P2L(void){
// HAL_GPIO_WritePin(Aio_P2_GPIO_PortAio_P2_PinGPIO_PIN_SET);
Aio_P2_GPIO_Port->BSRR = GPIO_PIN_6_L16;
}
void Aio_P3H(void){
//HAL_GPIO_WritePin(Aio_P3_GPIO_PortAio_P3_PinGPIO_PIN_RESET);
Aio_P3_GPIO_Port->BSRR = GPIO_PIN_5_INT;
}
void Aio_P3L(void){
// HAL_GPIO_WritePin(Aio_P3_GPIO_PortAio_P3_PinGPIO_PIN_SET);
Aio_P3_GPIO_Port->BSRR = GPIO_PIN_5_L16;
}
void Aio_P4H(void){
//HAL_GPIO_WritePin(Aio_P4_GPIO_PortAio_P4_PinGPIO_PIN_RESET);
Aio_P4_GPIO_Port->BSRR = GPIO_PIN_4_INT;
}
void Aio_P4L(void){
// HAL_GPIO_WritePin(Aio_P4_GPIO_PortAio_P4_PinGPIO_PIN_SET);
Aio_P4_GPIO_Port->BSRR = GPIO_PIN_4_L16;
}
void Aio_P5H(void){
//HAL_GPIO_WritePin(Aio_P5_GPIO_PortAio_P5_PinGPIO_PIN_RESET);
Aio_P5_GPIO_Port->BSRR = GPIO_PIN_5_INT;
}
void Aio_P5L(void){
// HAL_GPIO_WritePin(Aio_P5_GPIO_PortAio_P5_PinGPIO_PIN_SET);
Aio_P5_GPIO_Port->BSRR = GPIO_PIN_5_L16;
}
void Aio_P6H(void){
// HAL_GPIO_WritePin(Aio_P5_GPIO_PortAio_P6_PinGPIO_PIN_RESET);
Aio_P6_GPIO_Port->BSRR = GPIO_PIN_6_INT;
}
void Aio_P6L(void){
// HAL_GPIO_WritePin(Aio_P5_GPIO_PortAio_P6_PinGPIO_PIN_SET);
Aio_P6_GPIO_Port->BSRR = GPIO_PIN_6_L16;
}
void Aio_P7H(void){
// HAL_GPIO_WritePin(Aio_P7_GPIO_PortAio_P7_PinGPIO_PIN_RESET);
Aio_P7_GPIO_Port->BSRR = GPIO_PIN_7_INT;
}
void Aio_P7L(void){
// HAL_GPIO_WritePin(Aio_P7_GPIO_PortAio_P7_PinGPIO_PIN_SET);
Aio_

评论

共有 条评论