找回密码
 立即注册
楼主: 梁工

SPI-DMA输出控制WS2812三基色彩灯程序@8H系列/32G系列,不加反相器, CPU休息

  [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-02-27 21:15:21

0

主题

7

回帖

196

积分

注册会员

积分
196
发表于 2025-3-5 22:00:02 | 显示全部楼层
梁工,你好,
我用的是你的stc32g 查询发送 ws2812程序,想改成用stc32g库函数中的 SPI库,用库函数初始化spi后,ws2812不能正常点亮,请教下问题出在哪里?
  1. void z_spi_init()
  2. {
  3.     SPI_InitTypeDef SPI_InitStructure;
  4.     SPI_InitStructure.SPI_SSIG     = 1;             // 片选位     ENABLE, DISABLE
  5.     SPI_InitStructure.SPI_Enable   = 1;             // SPI启动    ENABLE, DISABLE
  6.     SPI_InitStructure.SPI_FirstBit = 0;            // 移位方向   SPI_MSB, SPI_LSB
  7.     SPI_InitStructure.SPI_Mode     = 1;    // 主从选择   SPI_Mode_Master, SPI_Mode_Slave
  8.     SPI_InitStructure.SPI_CPOL     = 0;       // 时钟相位   SPI_CPOL_High,   SPI_CPOL_Low
  9.     SPI_InitStructure.SPI_CPHA     = 1;     // 数据边沿   SPI_CPHA_1Edge,  SPI_CPHA_2Edge
  10.     SPI_InitStructure.SPI_Speed    = 1;        // SPI速度    SPI_Speed_4, SPI_Speed_8, SPI_Speed_16, SPI_Speed_2
  11.     SPI_Init(&SPI_InitStructure);
  12.     SPI_SW(SPI_P22_P23_P24_P25);    // SPI_P54_P13_P14_P15,SPI_P22_P23_P24_P25,SPI_P54_P40_P41_P43,SPI_P35_P34_P33_P32
  13.                 P24 = 0;                // MISO = 0, MOSI输出完毕保持低电平
  14.     P2n_push_pull(Pin3);    // 驱动WS2812将MOSI设置为推挽输出
  15. }
复制代码

点评

SPI有发出信号了? 如果SPI发出信号了,则是你的速度不对,示波器观察一下。 如果没有信号,则是初始化不对,请再检查程序。 驱动WS2812建议使用DMA方式,不占CPU时间,但占用比较多的RAM。  详情 回复 发表于 2025-3-5 22:25
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-3-5 22:25:58 | 显示全部楼层
karm*** 发表于 2025-3-5 22:00
梁工,你好,
我用的是你的stc32g 查询发送 ws2812程序,想改成用stc32g库函数中的 SPI库,用库函数初始化s ...

SPI有发出信号了?
如果SPI发出信号了,则是你的速度不对,示波器观察一下。
如果没有信号,则是初始化不对,请再检查程序。

驱动WS2812建议使用DMA方式,不占CPU时间,但占用比较多的RAM。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-3-6 14:36:25 | 显示全部楼层
谢谢楼主
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:319
  • 最近打卡:2025-04-30 08:16:39
已绑定手机

3

主题

35

回帖

987

积分

高级会员

积分
987
发表于 2025-3-14 16:48:43 | 显示全部楼层
试试看 效果怎样
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-15 10:07:48
已绑定手机

0

主题

2

回帖

20

积分

新手上路

积分
20
发表于 2025-4-14 16:59:43 | 显示全部楼层
梁工,你好。WS2812连接电源后会一直耗电,这种耗电可以解决吗

点评

WS2812本无法解决,你可以用一个MOSFET来关闭其电源。  详情 回复 发表于 2025-4-14 17:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-4-14 17:16:28 | 显示全部楼层
rvhz*** 发表于 2025-4-14 16:59
梁工,你好。WS2812连接电源后会一直耗电,这种耗电可以解决吗

WS2812本无法解决,你可以用一个MOSFET来关闭其电源。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-15 10:07:48
已绑定手机

0

主题

2

回帖

20

积分

新手上路

积分
20
发表于 2025-4-15 10:07:48 | 显示全部楼层
梁*** 发表于 2025-4-14 17:16
WS2812本无法解决,你可以用一个MOSFET来关闭其电源。

好的,谢谢梁工
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:148
  • 最近打卡:2025-05-01 14:31:13

7

主题

50

回帖

838

积分

高级会员

积分
838
发表于 2025-4-23 22:43:18 | 显示全部楼层
请教梁工,我想用8H8K64U + 128Mb spi nor flash + 16*32 512个WS2812做一个显示屏,显示数据放在128Mb spi nor flash,采用8H8K64U的SPI-DMA分别读128Mb spi nor flash里面的数据和送数据到16*32=512个WS2812组成的显示屏,如果是显示视频的话显示是否流畅。

点评

STC8H8K64U的DMA只能操作256个字节,换AI8051U吧,DMA可以一次传输完毕,FLASH可以使用QSPI+DMA访问,速度飞快。  详情 回复 发表于 7 天前
BH7NI 在深圳的安徽人
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 7 天前 | 显示全部楼层
bh7*** 发表于 2025-4-23 22:43
请教梁工,我想用8H8K64U + 128Mb spi nor flash + 16*32 512个WS2812做一个显示屏,显示数据放在128Mb spi ...

STC8H8K64U的DMA只能操作256个字节,换AI8051U吧,DMA可以一次传输完毕,FLASH可以使用QSPI+DMA访问,速度飞快。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:148
  • 最近打卡:2025-05-01 14:31:13

7

主题

50

回帖

838

积分

高级会员

积分
838
发表于 7 天前 | 显示全部楼层
梁*** 发表于 2025-4-24 00:13
STC8H8K64U的DMA只能操作256个字节,换AI8051U吧,DMA可以一次传输完毕,FLASH可以使用QSPI+DMA访问,速 ...

AI8051U以前没用过,刚查阅了,好像AI8051U可以32位模式,也可以8位模式。实现我这个功能用8位模式是否可以?

点评

用32位模式才可以。  详情 回复 发表于 7 天前
BH7NI 在深圳的安徽人
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 23:43 , Processed in 0.123950 second(s), 120 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表