標題: 關(guān)于STM32接受數(shù)據(jù)進入數(shù)組之后的使用問題 [打印本頁]

作者: Branca_Wu1996    時間: 2019-3-23 16:46
標題: 關(guān)于STM32接受數(shù)據(jù)進入數(shù)組之后的使用問題
各位經(jīng)驗豐富的大佬們你們好
現(xiàn)在我有一個問題,就是我寫STM32中,把收到的字符串塞進了數(shù)組里,然后我要使用這個數(shù)組中的其中一位。
我在中斷函數(shù)中寫的數(shù)據(jù)塞入數(shù)組。
void USART1_IRQHandler(void){
        u8 USART_Rx=0;
        u8 USART_BUF[6];//就是這個數(shù)組,在這兒定義過了,要求我在主函數(shù)再定義一次
        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;

在主函數(shù)中寫數(shù)組的第幾位。
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;
       


都是失敗的。
疑問,第一是不是我沒有塞進數(shù)組?
第二,是不是這個數(shù)組在兩個函數(shù)里寫,即使名字一樣,也不是同一個數(shù)組。如果真的不是同一個數(shù)組,我該怎么建立聯(lián)系呢?

作者: 飛云居士    時間: 2019-3-25 19:25
這個數(shù)組都是局部變量(  u8 USART_BUF[6];//就是這個數(shù)組,在這兒定義過了,要求我在主函數(shù)再定義一次)。把它放在程序開始的地方說明,即可在所有函數(shù)中使用。局部變量只能在當前函數(shù)內(nèi)有效。退出當前函數(shù),其變量即釋放。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1