我有代码错误但不确定我的转换和引用有什么问题.
BOOL xMBPortSerialPutByte( CHAR ucByte )
{
CDC_Send_DATA(&((unsigned char)ucByte), 1); // code error here
xMBPortEventPost(EV_FRAME_SENT);
return TRUE;
}
Run Code Online (Sandbox Code Playgroud)
CDC_Send_DATA定义如下:
uint32_t CDC_Send_DATA (uint8_t *ptrBuffer, uint8_t Send_length);
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
port/portserial.c:139:19: error: lvalue required as unary '&' operand
Run Code Online (Sandbox Code Playgroud)
希望有人能提供帮助.谢谢!
Car*_*rum 12
转换操作会导致转换,从而产生右值.右值没有地址,因此您无法使用一元进行操作&.你需要采取的地址,然后投是:
CDC_Send_DATA((unsigned char *)&ucByte, 1);
Run Code Online (Sandbox Code Playgroud)
但最重要的是,你应该匹配强制转换中的参数类型:
CDC_Send_DATA((uint8_t *)&ucByte, 1);
Run Code Online (Sandbox Code Playgroud)
检查返回值也可能是一个好主意.
| 归档时间: |
|
| 查看次数: |
34371 次 |
| 最近记录: |