前两天卤煮遇到一个外国小伙伴问怎样把他从传感器获取的整型数据通过PSoC4的UART打印到电脑的终端上。卤煮脑子慢,首先觉得很简单,直接UartPutInt呗,然后愣了愣,确认了下PSoC其实根本没有这个函数...
整型的0.....用PutChar直接打在电脑上打不出来啊,必须转它的ASC II码,那么,直接加0x30!
OK, Done!
马上问题又来了,如果是0-9的数字,加0x30固然方便。可是如果是大于9的数字怎么办? 算来算去有点烦的。
不过觉得肯定有前辈研究过这个问题,然后果然...google到早有小伙伴想到了,用stdio.h里的sprintf就可以解决了!试了一下果然好用!
现在心里就想吐槽问这个问题的外国小伙伴: 你家也是可以用google的...
当然,吐槽不是重点啦,重点是想抛砖引玉,想知道有没有其他好方法~
#include <project.h>
#include <stdio.h>
int main()
{
uint8 input;
char Temp[2];
CyDelay(300);// Avoid messy data at reset.
/* Start SCB (UART mode) operation */
UART_Start();
UART_UartPutString("\r\n***********************************************************************************\r\n");
UART_UartPutString("\r\n");
for (;;)
{
for(input=0u; input<=100u; ++input)
{
UART_UartPutChar(input+0x30);
UART_UartPutString("\r\n");
sprintf(Temp, "%d", input);
UART_UartPutString(Temp);
UART_UartPutString("\r\n\r\n");
CyDelay(100);
}
}
}
|