请教:串口发送ADC得到的数据格式问题

2019-03-24 13:32发布

   请教各位大神,假如串口发送函数如下
功    能:向PC机发送一个字符
void Send1Char(char sendchar)
{
      while (!(IFG2 & UCA0TXIFG));    //等待发送寄存器为空         
      UCA0TXBUF = sendchar;   
}


功    能:向PC机发送字符串并换行指令
********************************************/
void PutString(char *ptr)
{
      while(*ptr != '')
      {
            Send1Char(*ptr++);                     // 发送数据
      }
      while (!(IFG2 & UCA0TXIFG));
      UCA0TXBUF = ' ';                              //发送换行指令
}
如a=567 是一个整数,或是浮点数等,用串口发送怎么发?难道要先转化为一个个字符吗?
我想通过ADC测电压,将数据实时发送到电脑端。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
jiaqiqiu
1楼-- · 2019-03-24 17:50
< 1)你可以自己实现printf()函数;
2)你也可以将ADC采集的数据(16bit以内),转换为2个字节发送,上位机作解析;
3)如果不采用上面两种方式,那就需要转化为一个个字符了。
koanzhongxue
2楼-- · 2019-03-24 19:30
 精彩回答 2  元偷偷看……
koanzhongxue
3楼-- · 2019-03-24 23:10
追问一下,不采集电压的到一个数组vol[8],内涵8个时间的电压数据,我累加求平均后得到dc是个小数值,我应该怎么发呢?处理思路能不能指导一下?
多谢
jiaqiqiu
4楼-- · 2019-03-25 05:03
假设8个数据求和sum = 111;  // 111/8 = 13.875
整数部分a = sum>>3 = 13;
余数b = sum - (a<<3) = 7;
保留3位小数c = (b*1000)>>3 = 875;
然后一位一位发1 + 0x20, 3 + 0x20,0x2E ,8 + 0x20, 8 + 0x20, 5+ 0x20,
jiaqiqiu
5楼-- · 2019-03-25 08:48
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章