新手入门
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2012-12-19
- 在线时间
- 0 小时
|

楼主 |
发表于 2012-12-24 11:16:19
|
显示全部楼层
回复【3楼】正点原子:
---------------------------------
是有一个缓冲区
void USART1_Send_Byte(u16 Data)
{
while (!(USART1->SR & USART_FLAG_TXE));
USART1->DR = (Data & (uint16_t)0x01FF);
}
void USART_Send_Str(char* senddata,int lenth)
{
u16 i;
for (i=0; i<lenth; i++)
{
USART1_Send_Byte(senddata);
}
memset(udata,0x00,sizeof(udata));
dataLen=0;
}
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
udata[dataLen]=USART1->DR;
dataLen++;
}
USART_Send_Str(udata,dataLen);
}
我把USART_Send_Str(udata,dataLen); 放到定时器里 就会出来之前1分钟接收到的30条左右的数据,如果把udata放定时器里 只会出来第一个字节,不是字符串 |
|