标题: 关于STM32接受数据进入数组之后的使用问题 [打印本页]

作者: Branca_Wu1996    时间: 2019-3-23 16:46
标题: 关于STM32接受数据进入数组之后的使用问题
各位经验丰富的大佬们你们好
现在我有一个问题,就是我写STM32中,把收到的字符串塞进了数组里,然后我要使用这个数组中的其中一位。
我在中断函数中写的数据塞入数组。
void USART1_IRQHandler(void){
        u8 USART_Rx=0;
        u8 USART_BUF[6];//就是这个数组,在这儿定义过了,要求我在主函数再定义一次
        u8 Res;
        u8 DATA_SOUCE;
#if SYSTEM_SUPPORT_OS                 //èç1ûSYSTEM_SUPPORT_OSÎaÕæ£¬ÔòDèòaÖ§3ÖOS.
        OSIntEnter();   
#endif
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){       
        USART_ClearITPendingBit(USART1,USART_IT_RXNE)
                Res =USART_ReceiveData(USART1);
                USART_SendData(USART1, Res);               
    USART_BUF[USART_Rx]=USART_ReceiveData(USART1);
                USART_Rx++;
                USART_Rx&=0xFF;

在主函数中写数组的第几位。
int main(void){
        u16 t;  
//        u16 ch;       
        double ch;
        double aimtemp;
        u8 DATA_SOUCE;
        u8 USART_BUF[6];       
        u16 times=0;
       
        delay_init();
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
        uart_init(9600);
        LED_Init();
               
  while (1)
  {
                ch=(USART_BUF[2]-'0')*10+(USART_BUF[3]-'0')*1+(USART_BUF[5]-'0')*0.1;
       


都是失败的。
疑问,第一是不是我没有塞进数组?
第二,是不是这个数组在两个函数里写,即使名字一样,也不是同一个数组。如果真的不是同一个数组,我该怎么建立联系呢?

作者: 飞云居士    时间: 2019-3-25 19:25
这个数组都是局部变量(  u8 USART_BUF[6];//就是这个数组,在这儿定义过了,要求我在主函数再定义一次)。把它放在程序开始的地方说明,即可在所有函数中使用。局部变量只能在当前函数内有效。退出当前函数,其变量即释放。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1