当前位置: 首页 > news >正文

CH585的SPI驱动WS2812

链接: https://pan.baidu.com/s/1Su5dgmVWLre5kH2fYiGwQQ?pwd=wch6

CH573系列/583系列/592系列MCU,在使用SPI模拟WS2812波形时,MISO-PA15引脚上的实时电平,会影响MOSI-PA14引脚上的空闲电平状态,故建议SPI驱动WS2812的场景下,固定PA15的电平,不要接其他外设。
异常场景:当PA15引脚上为高电平时,PA14一组波形输出完,空闲态也变为高电平,会影响WS2812识别下一组波形的起始值。

 

CH585系列,实测SPI0已改良,PA14在输出一组DMA波形后,空闲电平始终为低电平,驱动不受PA15实时电平的影响,释放出PA15可以接其他外设。使能SPI后,PA14的GPIOset/reset接口失效,空闲电平固定为低电平;失能SPI后可以正常输出拉高/拉低PA14。

驱动WS2812主要函数:

复制代码
/** 将GRB灰度转换为通过SPI的DMA发出的比特流。每个WS2812灯珠需要12个字节来驱动。* uint8_t *grb_pdest:  SPI缓存数组* uint8_t *grb_psrc:   GRB灰度* uint16_t len:        灯珠数量* */
void grb_scale_2_spi_buff(uint8_t *pdest_grb, uint8_t *psrc_grb, uint16_t len)
{memset(pdest_grb, 0, len*3*4);     //数组清零
//  G/R/B驱动中的一个编码位用4个SPI位表示。每种色彩8个编码位,需要4字节。驱动G/R/B共24个位,故需要SPI波形中的96个位即12个字节来表示。for(uint16_t i=0; i<len; i++){for(uint8_t j=0; j<3; j++)  //G/R/B三种色彩轮流配置{for(uint8_t k=0; k<4; k++)  //每种色彩8位灰度,用4个字节表示{for(uint8_t m=0; m<2; m++)  //每个字节包含两个ws2812编码位{if( psrc_grb[3*i + j] & (0x80 >> (2*k + m)) ){pdest_grb[3*4*i + 4*j +k] |= (GRB_CODE_1 >> (m*4));//PRINT("1 ");}else{pdest_grb[3*4*i + 4*j +k] |= (GRB_CODE_0 >> (m*4));//PRINT("0 ");}}//PRINT("%x ", spi_grb_buff[3*4*i + 4*j +k]);}}//PRINT("\n");}//PRINT("\n");
}
复制代码

 

http://www.sczhlp.com/news/65744/

相关文章:

  • 上海微信网站建设公司电话南宁建设网站
  • 英文网站提交长沙蒲公英网站建设
  • 自己学习做网站电脑培训学校哪家最好
  • 湖南做网站360o邢台邯郸做网站
  • 注册型网站推广天津网站建设制作品牌公司
  • 建设网站需要什么知识网站主页作品欣赏
  • 做渲染的网站qq群排名优化软件官网
  • 网站推广话术与技巧乐清网络公司哪家最好
  • kettle插件-oracle cdc插件,过五关斩六将终于搞定oracle实时数据同步
  • 拼接字符
  • u-Boot setenv 命令-详细说明
  • 网站建设 天津找工程做在哪个网站?
  • 卖产品的网站怎么做英文seo是什么
  • 做网站 侵权防控政策优化
  • LGP8867 [NOIP 2022] 建造军营 学习笔记
  • CodeGenie 的 AI 辅助调优让你问题定位效率大幅提升
  • 网站设计书品牌建设实施方案
  • 网络推广竞价外包seo外包杭州
  • 有网站了小程序怎么做重庆博建设计院公司是网站
  • 做网站大公司还是小公司快速网页制作工具
  • 快速网站排名优化大连在哪个方向
  • 珠海市品牌网站建设平台网站建设费用无形资产如何摊销
  • 哈尔滨做网站seo的给我一个网站图片
  • 做网站销售工资中国建设劳动学会是假网站吗
  • 小迪网站建设wordpress主题里加广告
  • 网站404做多大网站建设企业关键词
  • We love POI
  • 深圳建设管理中心网站首页亚马逊雨林视频
  • 自己做的网站二维码怎么做的网站源码下载音乐
  • 点餐网站模板 手机端无锡网站建设书生商友