直接在主程序中定义:
uint8_t a[10]={1,2,3,4,5,6,7,8,9,0};
uint8_t b[10]={10,2,3,4,5,6,7,8,9,0};
uint8_t c[10]={100,2,3,4,5,6,7,8,9,0};
在驱动程序中已定义过void Usart_SendArray(USART_TypeDef* pUSARTx, uint8_t *array, uint8_t num) ;
接下来就在主函数中直接引用:
Usart_SendArray(DEBUG_USARTx, a, 10); /引用一/
Usart_SendArray(DEBUG_USARTx, b, 10); /引用二/
Usart_SendArray(DEBUG_USARTx, c, 10); /引用三/
打印显示:
(十六进制时)
01 02 03 04 05 06 07 08 09 /引用一/ 0A 02 03 04 05 06 07 08 09 00 /引用二/ 64 02 03 04 05 06 07 08 09 00 /引用三/
解释:在驱动函数中都已定义是八位元素(uint8_t)了,八位二进制相当于两位十六进制,所以,显示的时候,要显示成“两位”、“两位” 的数组序列;
主程序中定义的数组元素,未声明的情况下,按十进制计;
十进制的10对应十六进制的A,两位显示为0A;
十进制的100对应0x64,两位显示为64;
(非十六进制时)
取消十六进制显示的复选框后,按照字符型显示,显示数组中的元素还是按照十六进制计,要从ASCII表中查出对应元素数值的字符:
从0,1,2到9的字符分别为:
NUL(null) SOH(start of headline) STX (start of text) ETX (end of text) EOT (end of transmission)
ENQ (enquiry) ACK (acknowledge) BEL (bell) BS (backspace) HT (horizontal tab)
从1,2到9的字符解释分别为:
标题开始 正文开始 正文结束 传输结束 请求 收到通知 响铃 退格 水平制表符;
从0,1,2到9的字符实际对应键盘输入在屏幕上的显示,也就8和9有意义,按顺序分别为:先退格消去一个、再按Tab键长进一次;
0x00的字符为NUL(null),解释为“空字符”,实际意义连空格都不是,就是“什么也不做的意思”,无意义、可忽略;
0x10 0x64对应的字符(字符解释)为 LF (NL line feed, new line) (换行键),d(小写字母d);
那为什么显示的时候没有换行出现呢?因为换行后面,有一个退格键,又给退回去了!
见下图: