中级会员
 
- 积分
- 265
- 金钱
- 265
- 注册时间
- 2013-8-3
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-5-16 16:55:28
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
回复【2楼】正点原子:
---------------------------------原子哥,现在的问题是:我要在发数字前先发一个标志,可是我发了之后就发不了数字:代码如下:
/*****/
void TIM3_IRQHandler()
{
if(TIM_GetITStatus(TIM3,TIM_FLAG_Update)!=RESET)
{
if(flag==0){
flag=1;
USART_SendData(USART1,'Z'); //就是这个地方,我如果发这个标志的话,下面的数组就发不了,不知为什么,只发数字是可以的
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //
Data_MMA0=ADC_Get(ADC_Channel_0);
//printf("\rMMA0=%d\n",Data_MMA0);
Data_MMA0=3321; //测试数据,直接固定
Get_Array(Data_MMA0);
Usart_Array(); //这个是把数据转化为数组里面的元素
}
else if(flag==1){
flag=2;
USART_SendData(USART1,'X');
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
Data_MMA1=ADC_Get(ADC_Channel_1);
//printf("\rMMA1=%d\n",Data_MMA1);
Data_MMA1=3322;
Get_Array(Data_MMA1);
Usart_Array();
}
else if(flag==2){
flag=0;
USART_SendData(USART1,'Y');
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
Data_MMA2=ADC_Get(ADC_Channel_2);
//printf("\rMMA2=%d\n",Data_MMA2);
Data_MMA2=3323;
Get_Array(Data_MMA2);
Usart_Array();
}
if(status==0)
{
status=1;
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_6);
//printf("\r\n EXTI0 entern\r\n");
}
else if(status==1){
GPIO_SetBits(GPIOE,GPIO_Pin_6);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
status=0;
//printf("\r1 second\n");
}
TIM_ClearITPendingBit(TIM3,TIM_FLAG_Update);
}
}
请原子哥指导一下,谢谢,或者有没有2个串口之间传数据的例子???? |
|