研究生
最后登录1970-1-1
在线时间 小时
注册时间2016-7-12
|
楼主 |
发表于 2016-7-14 18:13:59
|
显示全部楼层
我的发送一个字节函数:
/*发送一个字节,也是字符*/
void USART_ByteSend(USART_TypeDef* USARTx,uint8_t ch)
{
/*将一个字节发送到USART*/
USART_SendData(USARTx,ch);
/*等待发送寄存器为空*/
while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)!=RESET);
}
如果我的发送数组函数为:
void USART_SendArray(USART_TypeDef * USARTx,uint8_t *a)
{
unsigned int k=0;
do
{
USART_ByteSend( USARTx, *(a+k) );
} while(*(&a[0] + k)!='\0');
/* 等待发送完成 */
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)==RESET)
{}
}
只能发送数组最后一个数据。
如果我的发送数组函数为:
void USART_SendArray(USART_TypeDef * USARTx,uint8_t *a)
{
unsigned int k=0;
do
{
USART_SendData( USARTx,*(a + k) );
/* 等待发送完毕 */
while (USART_GetFlagStatus(DEBUG_USART, USART_FLAG_TXE) == RESET);
k++;
} while(*(&a[0] + k)!='\0');
}
就能发送所有数据,我只是一个调用函数USART_ByteSend,一个把函数分开来写,为什么结果会不一样呢?很纠结~.~
|
|