OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4868|回复: 4

求教USMART这个函数void test_fun(void(*ledset)(u8),u8 sta)

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2014-11-3
在线时间
0 小时
发表于 2014-11-3 10:51:06 | 显示全部楼层 |阅读模式
5金钱
求教USMART这个函数void test_fun(void(*ledset)(u8),u8 sta)
{
ledset(sta);
}  
是不是有问题啊 里面不是应该是(*ledset)(sta);吗?

最佳答案

查看完整内容[请看2#楼]

函数指针,传递的是一个函数的入口地址。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1818
金钱
1818
注册时间
2014-6-27
在线时间
975 小时
发表于 2014-11-3 10:51:07 | 显示全部楼层
函数指针,传递的是一个函数的入口地址。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-7-4
在线时间
11 小时
发表于 2019-8-14 18:10:52 | 显示全部楼层
借上面小伙伴的话题 , 在 USMART 工具中,有这个测试函数, 但请教 原子哥,在 XCOM 中要如何调用这个函数啊.

我写成如下:
test_fun(ledset(0),0)  提示参数错误.
test_fun(ledset,0)      提示参数错误
test_fun(void(*ledset)(u8),0)    参数错误

所以,请教一下 这种带函数指针参数 的函数要如何在 XCOM 中调用,因为我的程序里面,这种设定了 callback 函数的情况还挺多的.

谢谢!
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2019-4-2
在线时间
4 小时
发表于 2019-11-10 17:22:57 | 显示全部楼层
长空 发表于 2019-8-14 18:10
借上面小伙伴的话题 , 在 USMART 工具中,有这个测试函数, 但请教 原子哥,在 XCOM 中要如何调用这个函数啊.
...

void test_fun(void(*ledset)(u8),u8 sta)这个函数的第一个参数是函数的地址,这个参数一般通过ID指令获得你要操作的函数的地址,例如,你发送id后,返回了你所有添加的函数的id,这时选择你要操作的那个函数的id放在void test_fun(void(*ledset)(u8),u8 sta)的第一个参数处就可以了。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-9-28
在线时间
8 小时
发表于 2020-2-18 12:00:37 | 显示全部楼层
zhang0814 发表于 2019-11-10 17:22
void test_fun(void(*ledset)(u8),u8 sta)这个函数的第一个参数是函数的地址,这个参数一般通过ID指令获 ...

我按你这么做,为啥一发完命令就卡死啊,板子就没反应了,得到的结果也是和直接调用不一样,求解释
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 13:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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