一个小例子,要想在串口调试工具显示数,必须将这个数转换成对应的ASCII形式。
data += 0X30 / 48 put_c(data);
数 ------------------> ASCII码 --------------------> 输出
但是,如果这个数data大于10,那么在转换成ASCII的时候,要对data的每一位分别进行处理
例如:
#include <avr/io.h>
#include <string.h>
#include "usart.h"
//测试使用
//注意:strlen函数的使用,以及利用串口如何将这个长度输出(尤其是这个长度大于10的时候)。
unsigned char arr[] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int main(void)
{
unsigned char i = strlen(arr);
usart_init();
while(1){
if( i>0 && i<10){
put_c(i + 0x30);
}else if(i>=10){
put_c(i / 10 + 0x30);
put_c(i % 10 + 0x30);
}else{
//其它情况暂时不处理
}
put_c(get_c());
}
return 0;
}