中国网站排名 优帮云,一个网站备案号是冒用其它公司的,wordpress自定义栏目模板,jsp做网站案例如下是在将安富莱的dac8563模块对接到潘多拉开发板RT-Thread SPI设备框架中时导出到RT-Thread的自定义MSH命令#xff0c;需要注意的是MSH传入的是字符串#xff0c;需要自行对字符串进行解析处理。
#include stdlib.h /* 使用其中的函数#xff1a;atoi(); */…如下是在将安富莱的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中输入的指令如下所示:
命令的名称为dac8563_spi_sample存储于argv[0]第一个参数为A存储于argv[1]第2个参数为8000存储于argv[2]共有3个字符串因此argc为3各字符串的内容被存储与argv[]的各个元素中在MSH中传入到程序的各个参数均为字符串形式因此需要用户自行处理其中的参数也就是说需要做严格的参数检查或者进行类型的转换。
因为dac8563有两个电压输出通道因此设置输出电压时就需要指定是哪个通道A或B具体设置的电压值-10000~10000mV
命令格式如上图所示argv[1]中存储的内容会被解析为电压输出通道因此就需要用strncmp(A, argv[1], 1)函数进行比对。若argv[1]中存储的字符串前1个字符和“A”相等则strncmp的返回值为0否则为1。为0表示当前操作通道为A则进行通道A输出电压的设置。具体设置的值存储在argv[2]中是以字符串格式进行存储的因此需要将字符串转换为整型数。这里使用到了stdlib.h中的函数atoi()。该函数可将输入的字符串转换为带符号整型如“-5678”转换为整型的-5678“9860”转换为整型的9860。 【atoi函数】
头文件 stdlib.h
C语言中有atoi、atol、atof等库函数可分别把ASCII编码的字符串转化为int、daolong、float类型的数字。 函数原型int atoi(const char* nptr);
示例 char *str996; int numatoi(str); 执行后num的值被初始化为996
【strncmp函数】
头文件 string.h
函数名: strncmp
函数功能: 字符串比较
函数用法: int strncmp(char *str1, char *str2, int maxlen);
说明:此函数功能即比较字符串str1和str2的前maxlen个字符。如果前maxlen字节完全相等返回值就0在前maxlen字节比较过程中如果出现str1[n]与str2[n]不等则返回str1[n]-str2[n]。