[mw_shl_code=c,true]void Send485_humiture()
{
u8 temp,humi,i;
u8 buf[5];
dht11_read_data(&temp,&humi);
GPIO_SetBits(GPIOA,GPIO_Pin_11);//send mode
delay_ms(2);
USART_ClearFlag(USART1,USART_FLAG_TC);
buf[0]=0x55;
buf[1]=0x09;
buf[2]=temp;
buf[3]=humi;
buf[4]=buf[0]+buf[1]+buf[2]+buf[3];
// for(i=0;i<5;i++)
// {
// USART_SendData(USART1, buf);
//}
USART_SendData(USART1, buf[0]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
USART_SendData(USART1, buf[1]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
USART_SendData(USART1, buf[2]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
USART_SendData(USART1, buf[3]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
USART_SendData(USART1, buf[4]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
GPIO_ResetBits(GPIOA,GPIO_Pin_11);//read mode
delay_ms(2);
}[/mw_shl_code]
我若用FOR循环SendData的话 通过485转换至电脑串口调试助手就是乱码 但是我如果像代码一样一行一行输出的话 就是正常的为什么啊?不是很理解 难道不是一样的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>