GD32驱动SK6812灯珠

该博客详细介绍了如何在GD32F130G6U6单片机上配置SPI接口驱动SK6812LED灯串,包括GPIO初始化、SPI参数设置、SPI发送函数以及DMA配置。通过SPI全双工模式和DMA传输提高效率,实现高效控制LED灯串显示。
摘要由CSDN通过智能技术生成

GD32F130G6U6 SPI驱动SK6812

GPIO配置

使用IO口PB5,GPIO初始化:

rcu_periph_clock_enable(RCU_GPIOB);
gpio_af_set(GPIOB,GPIO_AF_0,GPIO_PIN_5);
gpio_mode_set(GPIOB,GPIO_MODE_AF,GPIO_PUPD_PULLUP,GPIO_PIN_5);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);

SPI配置

spi_parameter_struct spi_init_struct;
spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.device_mode          = SPI_MASTER;
spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
spi_init_struct.nss                  = SPI_NSS_SOFT;
spi_init_struct.prescale             = SPI_PSC_16;
spi_init_struct.endian               = SPI_ENDIAN_MSB;
spi_init(SPI0, &spi_init_struct);

/* enable SPI0 */
spi_enable(SPI0);

SPI发送


void my_spi_send_buf(uint8_t *buf,uint16_t len)
{
	uint16_t i=0;
	
	for(i=0;i<len;i++)
	{
		while (RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_TBE));
		spi_i2s_data_transmit(SPI0,buf[i]);
	}
}

DMA配置

如果不使用DMA驱动,可以不用配置DMA

void dma_config(void)
{
    dma_parameter_struct  dma_init_struct;
    dma_struct_para_init(&dma_init_struct);
    /* SPI0 transmit dma config */
    dma_deinit(DMA_CH2);   
    dma_init_struct.periph_addr = (uint32_t)&SPI_DATA(SPI0);//外设基地址
    dma_init_struct.memory_addr = (uint32_t)buff_b ;//内存基地址
    dma_init_struct.direction = DMA_MEMORY_TO_PERIPHERAL;   //数据传输方向:内存到外设
    dma_init_struct.periph_width = DMA_PERIPHERAL_WIDTH_8BIT;//外设数据宽度8位
    dma_init_struct.memory_width = DMA_MEMORY_WIDTH_8BIT;   //内存数据宽度8位
    dma_init_struct.priority = DMA_PRIORITY_HIGH;           //DMA通道传输软件优先级
    dma_init_struct.number = LED_ARR;                     //DMA通道数据传输数量
    dma_init_struct.periph_inc =  DMA_PERIPH_INCREASE_DISABLE;//外设地址生成算法模式使能
    dma_init_struct.memory_inc =  DMA_MEMORY_INCREASE_ENABLE;//存储器地址生成算法模式失能
    dma_init(DMA_CH2, &dma_init_struct);                     //初始化DMA通道2	

}

后续待更新…
源码下载链接
https://download.csdn.net/download/Samuel_8023/33768947

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值