Other Parts Discussed in Thread: CC2530
工具/软件:TI C/C++编译器
大家好、
正如您所说 的、我正在努力完成调光器的工作、ZCD 和 PWM 控制在 CC2530之外、我使用的是 MSP430。
要获取从 CC2530发送 到 MSP430的串行信息、调光器电平(从1到254)、我使用 了 zclxxx0003_NewLevel。 要识别 MSP430、接收到的字节需要在字符串末尾包含 EOS (/0)。 正如 您在上一篇文章中看到的那样、我使用两个 HalUARTWrite 来完成它。 但它运行不是很好、因为我需要在同一串数组中发送调光器级别和"/0"。
uint8 zclTTa0003_NewLevel;
字符字符串结束={'\0'};
HalUARTWrite (HAL_UART_PORT_0、(uint8*)&zclTTa0003_NewLevel、SIZE_OW_UART_RX_buffer); HalUARTWrite (HAL_UART_PORT_0、(char*)&stringEndof、size_of _UART_RX_buffer);
例如(10%)对应的0x1A、我需要发送0x1A'/0'。 如果没有 EOS、MSP430中使用的字符串函数将无法识别字符串数组的末尾、并且将不起作用。 在下面的示例中、您能否看到、变量结果始终 返回零、这是由于 字符串末尾的数字(通过 CC2530发送的串行接收)没有'/0'(NULL 或0十六进制)导致的。
MSP430灯串处理可获得调光器级别:
if((P1OUT & BIT3) == BIT3) { Zero_Cross = 1; i = 0; if(cnt ==1) { result =(int)strtol(digits, NULL, 0); cnt = 0; RXByteCtr = 0; } dimSet = result; } P1IFG &= ~BIT3; } |
我´需要将变量 zclTTa0003_NewLevel 转换为 ASCII、在末尾添加"//0"、而不是使用 HalUARTWrite 函数将其发送到串行。 我尝试使用 itoa 函数、但它在 IAR 编译器中不起作用。
有人可以建议我如何解决这个问题?