你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
STM32 HAL库使用SPI+DMA驱动WS2812优化方案
[复制链接]
waiman
发布时间:2018-2-6 15:03
阅读主题, 点击返回1楼
赞
1
收藏
28
评论
77
分享
发布时间:2018-2-6 15:03
请先
登录
后回复
77个回答
九子帝王
回答时间:2019-7-10 16:42:08
a0a.1 32b0c
正要用这个
赞
评论
回复
支持
反对
sujido
回答时间:2019-7-19 10:36:52
a0a.1 32b0c
学习了,谢谢分享
赞
评论
回复
支持
反对
aabb000
回答时间:2019-7-30 16:38:37
a1024a.1 32b0c
谢谢分享!
赞
评论
回复
支持
反对
HQS
回答时间:2019-8-24 16:59:45
a0a.1 32b0c
移植到其他芯片上,不运行不知道是什么问题。
赞
评论
回复
支持
反对
js4136
回答时间:2019-9-20 10:36:18
a0a.1 32b0c
多谢楼主,下载下来看看
赞
评论
回复
支持
反对
generalcircuits
回答时间:2019-9-20 15:29:57
a0a.1 32b0c
非常好的想法,感谢分享
赞
评论
回复
支持
反对
Eric.shi
回答时间:2019-10-31 12:26:06
a1024a.1 32b0c
感谢提供
赞
评论
回复
支持
反对
cruse
回答时间:2019-12-3 00:38:52
a4a.1 32b0c
是不是PWM双缓冲(或者HT/TC双中断)的占用空间会更少一些?
赞
评论
回复
支持
反对
Yv-Yu
回答时间:2019-12-5 23:56:10
a0a.1 32b0c
首先膜拜一下大佬,感谢大佬的分享,然后想请教一下各位,下面这段代码的实现是个啥意思啊,scale是干啥的啊?
0 P6 R0 O% i$ j. Y$ R- j+ v
void Sw28_SetBrightness(SW28_HandleTypeDef *swObj, uint8_t b)
; P$ c1 r( @5 o7 b0 R
{
) S0 U) q2 u" o% {
uint8_t newBrightness = b + 1;
6 s5 w! v5 `, p' v" _
uint8_t oldBrightness = swObj->Brightness - 1; // De-wrap old brightness value
% F8 L6 Q) H0 r% X, c
uint32_t c;
, a+ F: W: d9 t
uint16_t scale,i;
* ^1 L7 T3 S! ~; n1 X+ O
if(newBrightness != swObj->Brightness)
% Z0 o6 W6 q+ P
{ // Compare against prior value
4 n9 c- m |+ Z) Z
// Brightness has changed -- re-scale existing data in RAM
9 X) P. G0 b4 F9 o" B6 {, X
& l; Q3 A4 f+ C& d9 R0 e6 ^/ [
if(oldBrightness == 0)
# ]; D2 s; _* o9 {$ Y
scale = 0; // Avoid /0
# p/ p& Z( Q, x( b) b3 C
else if(b == 255)
6 G+ @# U$ l! v6 h4 h- t
scale = 65535 / oldBrightness;
( ^2 G ?- z8 J/ H' U$ p
else
2 L0 d# T: b4 J
scale = (((uint16_t)newBrightness << 8) - 1) / oldBrightness;
: ^0 p8 d I- B6 i# v
$ @7 q: R* |" u. g9 _
for(i=0; i<swObj->PixelLen; i++)
9 T, ^& ?* @- ^% A' V# g! ~" t
{
7 c0 r4 U- }4 a: h# G
c = Sw28_GetPixelColor(swObj,i); //获取16bit颜色
5 e5 E( v9 W& J
c = Sw28_ScaleColor(scale, c);
# Z* ^: k# U9 \
Sw28_SetPixelsColor(swObj,i,c);//设置颜色
- a8 b: r7 j% |$ L- m
}
! f6 @8 I* I9 v0 \" k
swObj->Brightness = newBrightness;
; ?$ H7 C3 V6 ^9 {8 n
}
0 q5 t6 h# ^" \; j* ]$ \
}
, ?' J& \- A' ]- q0 f$ y, X
: d; [3 x4 B/ B- ~) R; J8 T( o
! n% A! v6 ]: O% C+ t
赞
评论
回复
支持
反对
_zw_
回答时间:2020-2-13 21:49:32
a4a.1 32b0c
正在学习,参考一下,感谢分享
赞
评论
回复
支持
反对
_zw_
回答时间:2020-2-14 09:37:25
a4a.1 32b0c
下载不了还扣了金币,怎么办
赞
评论
回复
支持
反对
奇怪的叶子
回答时间:2020-4-4 23:12:19
a1024a.1 32b0c
感谢分享
赞
评论
回复
支持
反对
奇怪的叶子
回答时间:2020-4-4 23:13:03
a1024a.1 32b0c
感谢分享
赞
评论
回复
支持
反对
枯雪
回答时间:2020-4-5 18:20:46
a4a.1 32b0c
请问F103的Baud Rate是9MBits/s是不是不能满足,我尝试相同的设置,只有白光
赞
评论
回复
支持
反对
vanaua
回答时间:2020-5-6 10:25:28
a0a.1 32b0c
不错不错,受教了
赞
评论
回复
支持
反对
1
2
3
4
5
6
/ 6 页
下一页
所属标签
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
void Sw28_SetBrightness(SW28_HandleTypeDef *swObj, uint8_t b)
{
uint8_t newBrightness = b + 1;
uint8_t oldBrightness = swObj->Brightness - 1; // De-wrap old brightness value
uint32_t c;
uint16_t scale,i;* ^1 L7 T3 S! ~; n1 X+ O
if(newBrightness != swObj->Brightness)
{ // Compare against prior value4 n9 c- m |+ Z) Z
// Brightness has changed -- re-scale existing data in RAM9 X) P. G0 b4 F9 o" B6 {, X
& l; Q3 A4 f+ C& d9 R0 e6 ^/ [
if(oldBrightness == 0) # ]; D2 s; _* o9 {$ Y
scale = 0; // Avoid /0
else if(b == 255) 6 G+ @# U$ l! v6 h4 h- t
scale = 65535 / oldBrightness;
else 2 L0 d# T: b4 J
scale = (((uint16_t)newBrightness << 8) - 1) / oldBrightness;: ^0 p8 d I- B6 i# v
$ @7 q: R* |" u. g9 _
for(i=0; i<swObj->PixelLen; i++)
{7 c0 r4 U- }4 a: h# G
c = Sw28_GetPixelColor(swObj,i); //获取16bit颜色 5 e5 E( v9 W& J
c = Sw28_ScaleColor(scale, c);
Sw28_SetPixelsColor(swObj,i,c);//设置颜色
}! f6 @8 I* I9 v0 \" k
swObj->Brightness = newBrightness;
}
}, ?' J& \- A' ]- q0 f$ y, X
: d; [3 x4 B/ B- ~) R; J8 T( o