全局指针变量:
- ws2812_pixel_t *gtp_PixelList;
复制代码更新指针的函数:
- void WS2812_UpdatePixels(ws2812_pixel_t *ftp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
- {
- if(se_Ws2812Status == WS2812_IDLE)
- {
- ftp_PixelList = ftp_PixelNewList;
- se_Ws2812Status = WS2812_SNEDING_DATA;
- }
- }
复制代码数组:
- ws2812_pixel_t code switch_1_steady_on[] =
- {
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- };
复制代码
函数应用:
- WS2812_UpdatePixels(gtp_PixelList,switch_1_steady_on);
复制代码执行上述语句之后,观察断点可以执行到ftp_PixelList = ftp_PixelNewList;
但最终switch_1_steady_on的地址并没有传递给ftp_PixelList。一下脑塞了。
请坛友帮忙看看。
另,keil中除了用print的方法,可以直接观察到指针变量指向到什么地址吗?
{
if(se_Ws2812Status == WS2812_IDLE)
{
*ftp_PixelList = ftp_PixelNewList;
se_Ws2812Status = WS2812_SNEDING_DATA;
}
}
WS2812_UpdatePixels(>p_PixelList,switch_1_steady_on);
改这几个地方
WS2812_UpdatePixels(>p_PixelList,switch_1_steady_on);
这里编译器报错
我把新的代码传一下。
声明:
- ws2812_pixel_t *gtp_PixelList;
复制代码函数:- void WS2812_UpdatePixels(ws2812_pixel_t **ftpp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
- {
- if(se_Ws2812Status == WS2812_IDLE)
- {
- *ftpp_PixelList = ftp_PixelNewList;
- se_Ws2812Status = WS2812_SNEDING_DATA;
- }
- }
复制代码数组:- ws2812_pixel_t code switch_1_steady_on[] =
- {
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- PIXEL_IS_RED,
- };
复制代码函数应用:- WS2812_UpdatePixels(&ftp_PixelNewList,switch_1_steady_on);
复制代码嗯。学无止境。亲自试了一把,我才明白了。
一周热门 更多>