11.13/14 理解SDK框架遇到的问题

1.1.浮点数打印问题

  float red_increment = (target_red_value - initial_red_value) / STEPS;

 u8 STEPS = 100;

printf("绿色值每一次增量------%f\n", red_increment);

后面三个参数均为u8类型

希望采用 %f打印出每次的步进值。但是结果为空白

希望采用 %.2f打印出每次的步进值。但是结果为空白

希望采用 %df打印出每次的步进值。但是结果为0

 单片机不要使用浮点数或者浮点打印,大部分单片机不支持,通常用不上,运算资源占用大,

解决,一起运算

2:app_task_get_msg()函数调用参数问题

定义

//app消息获取接口(block参数为0表示内部pend,1直接返回)

void app_task_get_msg(int *msg, int msg_size, int block);

2.1 app_task_get_msg()参数初始化类型问题

在这个上电任务中,调用了app_task_get_msg()这个app消息发送函数,传入的参数为整形数组int msg[32]的首地址msg。

传入的参数这个为什么定义为数组msg[32],定义为其他。例如直接定义为指针变量int *msg然后调用app_task_get_msg(msg, ARRAY_SIZE(msg), 1);可行吗

2.1 解决

msg[32]是提供给app_task_get_msg()用的缓存,任何数据都需要缓存,而这个函数设计者可能处于安全考虑,不提供内部缓存地址供外部使用,设计了由外部提供缓存来保存这些数据。

2.2 app_task_get_msg()参数赋值问题

我搜索原SDK代码。并未发现有对该参数进行赋值,那么这里的msg[0]又该如何判断是否为APP_MSG_SYS_EVENT这个变量所对应的值呢?

2.2 解决

 msg[0][1]是官方提供的用法,不需要纠结为什么,只需要默认规定这些用法就行,而且正常开发也不需要理会这里,只要能用就行

3.蓝牙和串口的引脚的初始化在哪,源码里没找到。

有很多东西,是不需要知道他具体是怎么实现的,只要能用,输入和输出知道就行(一般SDK里都会有官方调用的代码做参考),就当他是个黑匣子就行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值