RT-Thread中自定义MSH命令传入的参数是字符串,需用户自行检查和解析

本文介绍了在RT-Thread操作系统中,自定义MSH命令处理字符串参数的过程。当使用MSH命令如'dac8563_spi_sample'时,参数'A'和'8000'以字符串形式存储。需要通过strncmp函数检查通道(如'A'),并使用atoi函数将电压值(如'8000')从字符串转换为整型。文章讨论了这两个函数的用法,以便正确解析和处理MSH命令的参数。
摘要由CSDN通过智能技术生成

如下是在将安富莱的dac8563模块对接到潘多拉开发板RT-Thread SPI设备框架中时导出到RT-Thread的自定义MSH命令,需要注意的是MSH传入的是字符串,需要自行对字符串进行解析处理。

#include "stdlib.h"	/* 使用其中的函数:atoi(); */
#include "string.h"	/* 使用其中的函数:strncmp(); */


static void dac8563_spi_sample(int argc, char *argv[])
{
	int16_t i16_volt = 0;
	
	rt_kprintf("input para is: %s %s %s \n", argv[0], argv[1], argv[2]);
	if (3 != argc)
	{
		rt_kprintf("error cmd! please input as: (A 5000) \n");
		return;
	}
	if (!strncmp("A", argv[1], 1))	//两个字符串在比较的长度内都相等则返回0
	{
		i16_volt = atoi(argv[2]);
		DAC8563_set_output_volt(WRITE_AND_UPDATE_DAC_A, i16_volt);
	}
	else if (!strncmp("B", argv[1], 1))
	{
		i16_volt = atoi(argv[2]);
		DAC8563_set_output_volt(WRITE_AND_UPDATE_DAC_B, i16_volt);
	}
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(dac8563_spi_sample, spi dac8563 sample);

在MSH中输入的指令如下所示:

  • 命令的名称为
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值