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

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

 火.. [复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:341
  • 最近打卡:2026-05-10 11:40:36

85

主题

7367

回帖

1万

积分

超级版主

积分
15915
发表于 2024-8-13 14:47:17 | 显示全部楼层
nibinxi*** 发表于 2024-8-13 12:30
请问,大家有遇到直接下载程序烧录,灯全部亮,然后跑马是啥问题?也在跑马,但是其余的灯全部是亮白色 ...

是不是主频没选好?选24M就可以。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:652
  • 最近打卡:2026-05-09 08:40:37

3

主题

55

回帖

2094

积分

金牌会员

积分
2094
发表于 2024-8-20 14:14:09 | 显示全部楼层
本帖最后由 桃花飞舞 于 2024-8-20 14:18 编辑

怎么按你这个接,下载后灯带没反应?奇怪我操作不对么?请指教!

点评

有示波器的话,看一下输出信号。我输出信号是无条件输出的,不可能没信号。用串口下载,下载完成后就直接跑程序了。  详情 回复 发表于 2024-8-20 15:06
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:341
  • 最近打卡:2026-05-10 11:40:36

85

主题

7367

回帖

1万

积分

超级版主

积分
15915
发表于 2024-8-20 15:06:28 | 显示全部楼层
桃花*** 发表于 2024-8-20 14:14
怎么按你这个接,下载后灯带没反应?奇怪我操作不对么?请指教!

有示波器的话,看一下输出信号。我输出信号是无条件输出的,不可能没信号。用串口下载,下载完成后就直接跑程序了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:652
  • 最近打卡:2026-05-09 08:40:37

3

主题

55

回帖

2094

积分

金牌会员

积分
2094
发表于 2024-8-21 13:29:30 | 显示全部楼层
梁*** 发表于 2024-8-20 15:06
有示波器的话,看一下输出信号。我输出信号是无条件输出的,不可能没信号。用串口下载,下载完成后就直接 ...

P1.2(或P5.4) P1.3 P1.4 P1.5这几个口我都看了波形,不是高电平就是低电平,没有出现那个ws2812的数据呢!搞不懂咋回事?

点评

选24MHz,直接下载HEX文件,P1.3输出的就是驱动信号。  详情 回复 发表于 2024-8-21 13:44
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:341
  • 最近打卡:2026-05-10 11:40:36

85

主题

7367

回帖

1万

积分

超级版主

积分
15915
发表于 2024-8-21 13:44:12 | 显示全部楼层
桃花*** 发表于 2024-8-21 13:29
P1.2(或P5.4) P1.3 P1.4 P1.5这几个口我都看了波形,不是高电平就是低电平,没有出现那个ws2812的数据呢! ...

选24MHz,直接下载HEX文件,P1.3输出的就是驱动信号。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:652
  • 最近打卡:2026-05-09 08:40:37

3

主题

55

回帖

2094

积分

金牌会员

积分
2094
发表于 2024-8-22 19:38:29 | 显示全部楼层
梁*** 发表于 2024-8-21 13:44
选24MHz,直接下载HEX文件,P1.3输出的就是驱动信号。

不知为什么,就是没数据出来,我用的逻辑分析仪,接了p1.2 p1.3 p1.4 p1.5,并且我把这几个管脚连接的电阻都断开了,直接下的hex文件,还是没有波形和数据出来,我怀疑芯片那几个管脚坏了。不然没法解释!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:823
  • 最近打卡:2026-05-09 09:54:38
已绑定手机

16

主题

1413

回帖

5249

积分

论坛元老

积分
5249
发表于 2024-8-24 08:04:58 | 显示全部楼层
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是 MISO 读到的状态, 0 !

AI8051U不支持这个特性吗?怎么SPI输出完成后MOSI持续高电平呢?

点评

AI8051U的SPI空闲时输出高电平,所以需要比较器反相一下输出。  详情 回复 发表于 2024-8-24 11:00
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:823
  • 最近打卡:2026-05-09 09:54:38
已绑定手机

16

主题

1413

回帖

5249

积分

论坛元老

积分
5249
发表于 2024-8-24 08:50:02 | 显示全部楼层
21cns*** 发表于 2024-8-24 08:04
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是  ...

void  SPI_Config(u8 SPI_speed)
{
        P_SW2 |= 0x80;                //SFR enable
        SPCTL = (SSIG_flag << 7) + (SPEN_flag << 6) + (DORD_flag << 5) + (MSTR_flag << 4) + (CPOL_flag << 3) + (CPHA_flag << 2) + (SPI_speed & 3);        //配置SPI


//        P_SW1 &= ~(3<<2);                //切换到P1.4(SS) P1.5(MOSI) P1.6(MISO) P1.7(SCLK)
        P1n_standard(0xF0);                //设置为准双向口
//        P5n_standard(0x10);                //设置为准双向口
        P16 = 0;                                //MISO = 0, MOSI输出完毕保持低电平
        P1n_push_pull(Pin5);        //驱动WS2812将MOSI设置为推挽输出

}

实际测量,SPI发送间隔中,P1.5和P1.6都是高电平。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:341
  • 最近打卡:2026-05-10 11:40:36

85

主题

7367

回帖

1万

积分

超级版主

积分
15915
发表于 2024-8-24 11:00:41 | 显示全部楼层
21cns*** 发表于 2024-8-24 08:04
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是  ...

AI8051U的SPI空闲时输出高电平,所以需要比较器反相一下输出。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:823
  • 最近打卡:2026-05-09 09:54:38
已绑定手机

16

主题

1413

回帖

5249

积分

论坛元老

积分
5249
发表于 2024-8-24 16:45:52 | 显示全部楼层
梁*** 发表于 2024-8-24 11:00
AI8051U的SPI空闲时输出高电平,所以需要比较器反相一下输出。

请问,哪些型号的单片机SPI是优化过、支持SPI空闲是输出低电平的?

点评

8H8K64U, 32G12K128, 32G8K64  详情 回复 发表于 2024-9-20 07:56
STC32系列,STC8H系列  详情 回复 发表于 2024-8-24 18:07
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-10 21:15 , Processed in 0.123045 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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