串口UART发送字符串的函数可以发送2个字节吗

uint16_t ADC_GetConversion()这是一个函数,
EUSART_WriteString(uint8_t *str)这是一个发送字符串的函数,
我可以实现把ADC_GetConversion()的返回值用EUSART_WriteString发送出去吗,
EUSART_WriteString(*ADC_GetConversion());能这样实现吗?

1个回答

不行,数据类型不一样,你可以吧第一个函数的返回值存在一个uint8_t BUFF[3];里面,然后再发送出去。

{
uint8_t BUFF[3];
uint16_t ret;

ret = ADC_GetConversion();
BUFF[0] = (uint8_t )((ret>>8)&0xff);
BUFF[1] = (uint8_t )(ret&0x00ff);
BUFF[2] = '\0';
EUSART_WriteString(BUFF);
}

不过,一般EUSART_WriteString();这种发送或者处理数据的函数需要限定处理的数据长度。
像这样EUSART_WriteString(uint8_t *str ,uint32_t length);

bearkan
bearkan 回复TRYBYE: ret是uint16_t ( unsigned short )类型吧,(ret&0x00ff)就是取“ret"的低8位。
大约 4 年之前 回复
TRYBYE
trybye BUFF[1] = (uint8_t )(ret&0x00ff);这个里面0x00ff为啥要这么多啊,不应该是0xff吗
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐