完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
调试单片机常用,参考正点原子USMART写了个简单的自用
核心内容如下 1、C语言(stm32) 定义 typedef struct ShellFun_CLASS{ void* func; //函数指针 const u8* resType; //函数返回类型 const u8* name; //函数名 }ShellFun; 用户列表 ShellFun UserFunList[]= { (void*)Shell_Test1,"void","Shell_Test1()", (void*)Shell_Test2,"u16","Shell_Test2(u16,u8,us)", }; 调用 u32 res; switch(mShell.fparamCnt) { case 0://无参数(void类型) res=(*(u32(*)())UserFunList.func)(); break; case 1://有1个参数 res=(*(u32(*)())UserFunList.func)(SParam(0)); break; case 2://有2个参数 res=(*(u32(*)())UserFunList.func)(SParam(0),SParam(1)); break; case 3://有3个参数 res=(*(u32(*)())UserFunList.func)(SParam(0),SParam(1),SParam(2)); break; } 2、C++语言(esp32) 定义 typedef struct ShellFun_CLASS{ void* func; //函数指针 const char* resType; //函数返回类型 const char* name; //函数名 }ShellFun; 用户列表 ShellFun UserFunList[]={ (void*)Test1,"void","Shell_Test1()", (void*)Test2,"void","Shell_Test2(u8)", (void*)Test3,"void","Shell_Test3()", }; 调用 uint32_t res; void* (*funP0)(); void* (*funP1)(void* a); void* (*funP2)(void* a,void* b); void* (*funP3)(void* a,void* b,void* c); switch(mShell.fparamCnt) { case 0://无参数(void类型) funP0=(void* (*)())UserFunList.func; res=(uint32_t)funP0(); break; case 1://有1个参数 funP1=(void* (*)(void*))UserFunList.func; res=(uint32_t)funP1((void*)SParam(0)); break; case 2://有2个参数 funP2=(void* (*)(void*,void*))UserFunList.func; res=(uint32_t)funP2((void*)SParam(0),(void*)SParam(1)); break; case 3://有3个参数 funP3=(void* (*)(void*,void*,void*))UserFunList.func; res=(uint32_t)funP3((void*)SParam(0),(void*)SParam(1),(void*)SParam(2)); break; } |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3457 浏览 1 评论
8996 浏览 16 评论
4050 浏览 18 评论
1107浏览 3评论
572浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1858浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 04:38 , Processed in 1.199293 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号