|
请教各位大神:
我在做单片机控制串口屏的程序。我想用sprintf函数,把要发送的内容放入数组buf[100],然后再用串口把buf[]中的内容发送到串口屏。可是每次都只能发送一个分号之前的内容。请问这是为什么?
程序如下:
void Display(void)
{
uint8_t TxCount = 0;
uint8_t buf[100];
sprintf(buf,"PIC(0,0,1);DS12(100,20,'电压:%.3fV',1);\r\n",1.23); //只能发送第一个分号之前的内容,这里是“PIC(0,0,1)”,调换了顺序也是一样;1.23在实际应用中会改成一个变量,这里仅做测试用。
while(TxCount < countof(buf))
{
/* 发送数据 */
USART_SendData(USART3, buf[TxCount++]);
/* 等待发送完成寄存器数据空 */
while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET)
{
}
}
}
这些用以控制串口屏的语句都是没问题的,问题应该就是单片机的串口发送这边吧。。
|
|