rtt系统下,通过串口打印输出脚本发送的数据
1、想在pyi文件下传递一个数组到单片机,该数组类型不定,可能是字符型,整型,浮点型,之前想通过定义可变参数模块def vals(a:int, *val):...,但是测试发现如果传递的是一个字符串‘hello’,按照如下执行后:
for(int i =0; i< pikaTuple_getSize(val); i++)
{
Arg* arg_i = pikaTuple_getArg(val, i);
rt_device_write(serial,0,arg_getStr(arg_i),1);
}
串口输出的只是一个字符‘h’,不明白为什么。
2、如果我不是可变参数传递而是用list传递,该怎么设置
3、如果想打印list内容,如何确定其长度?是否可用Tuple类下的len方法
非常感谢高手支招!
离线
@耳东陈
rt_device_write(serial,0,arg_getStr(arg_i),1); 这里,最后一个参数长度给的1,肯定就只打印一个字符呗
传入list的案例参考:https://gitee.com/Lyon1998/pikapython/blob/master/package/PikaStdLib/PikaStdData.pyi
里面的 FILEIO 类的 def writelines(self, lines: List): ...
离线
谢谢,参照案例做了如下修改,可以成功传递了。
for(int i =0; i< pikaList_getSize(list); i++)
{
Arg* arg_i = pikaList_getArg(list, i);
result = rt_device_write(serial,0,arg_getStr(arg_i),1);
if (result != 1)
{
rt_kprintf("RS232_UART_NAME2 write failed\r\n");
return ;
}
}
最近编辑记录 耳东陈 (2023-05-26 10:41:02)
离线