函数更新指针变量不成功,不知道问题在哪?

2020-01-12 17:22发布

全局指针变量:
  1. ws2812_pixel_t *gtp_PixelList;
复制代码更新指针的函数:

  1. void WS2812_UpdatePixels(ws2812_pixel_t *ftp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
  2. {
  3.     if(se_Ws2812Status == WS2812_IDLE)
  4.     {
  5.         ftp_PixelList   = ftp_PixelNewList;
  6.         se_Ws2812Status = WS2812_SNEDING_DATA;
  7.     }
  8. }
复制代码数组:
  1. ws2812_pixel_t code switch_1_steady_on[] =
  2. {
  3.     PIXEL_IS_RED,
  4.     PIXEL_IS_RED,
  5.     PIXEL_IS_RED,
  6.     PIXEL_IS_RED,
  7.     PIXEL_IS_RED,
  8.     PIXEL_IS_RED,
  9.     PIXEL_IS_RED,
  10. };
复制代码
函数应用:
  1. WS2812_UpdatePixels(gtp_PixelList,switch_1_steady_on);
复制代码执行上述语句之后,观察断点可以执行到ftp_PixelList   = ftp_PixelNewList;
但最终switch_1_steady_on的地址并没有传递给ftp_PixelList。一下脑塞了。
请坛友帮忙看看。
另,keil中除了用print的方法,可以直接观察到指针变量指向到什么地址吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
落叶知秋
1楼-- · 2020-01-14 08:59
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_UpdatePixels(&gtp_PixelList,switch_1_steady_on);

改这几个地方
nanfang2000
2楼-- · 2020-01-14 11:14
楼上是对的,楼主应该好好学习下指针的用法
neutronlmk
3楼-- · 2020-01-14 16:03
落叶知秋 发表于 2019-8-30 11:01
void WS2812_UpdatePixels(ws2812_pixel_t **ftp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
{
    if ...

WS2812_UpdatePixels(&gtp_PixelList,switch_1_steady_on);
这里编译器报错
neutronlmk
4楼-- · 2020-01-14 20:50
 精彩回答 2  元偷偷看……
neutronlmk
5楼-- · 2020-01-15 01:10
本帖最后由 neutronlmk 于 2019-8-30 11:30 编辑

我把新的代码传一下。
声明:
  1. ws2812_pixel_t *gtp_PixelList;
复制代码函数:
  1. void WS2812_UpdatePixels(ws2812_pixel_t **ftpp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
  2. {
  3.     if(se_Ws2812Status == WS2812_IDLE)
  4.     {
  5.         *ftpp_PixelList = ftp_PixelNewList;
  6.         se_Ws2812Status = WS2812_SNEDING_DATA;
  7.     }
  8. }
复制代码数组:
  1. ws2812_pixel_t code switch_1_steady_on[] =
  2. {
  3.     PIXEL_IS_RED,
  4.     PIXEL_IS_RED,
  5.     PIXEL_IS_RED,
  6.     PIXEL_IS_RED,
  7.     PIXEL_IS_RED,
  8.     PIXEL_IS_RED,
  9.     PIXEL_IS_RED,
  10. };
复制代码函数应用:

  1. WS2812_UpdatePixels(&ftp_PixelNewList,switch_1_steady_on);
复制代码
xf331785508
6楼-- · 2020-01-15 02:13
neutronlmk 发表于 2019-8-30 11:29
我把新的代码传一下。
声明:
函数:


嗯。学无止境。亲自试了一把,我才明白了。