找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4219|回復: 1
打印 上一主題 下一主題
收起左側

關于STM32接受數據進入數組之后的使用問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:475866 發(fā)表于 2019-3-23 16:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位經驗豐富的大佬們你們好
現在我有一個問題,就是我寫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;
       


都是失敗的。
疑問,第一是不是我沒有塞進數組?
第二,是不是這個數組在兩個函數里寫,即使名字一樣,也不是同一個數組。如果真的不是同一個數組,我該怎么建立聯系呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:404160 發(fā)表于 2019-3-25 19:25 | 只看該作者
這個數組都是局部變量(  u8 USART_BUF[6];//就是這個數組,在這兒定義過了,要求我在主函數再定義一次)。把它放在程序開始的地方說明,即可在所有函數中使用。局部變量只能在當前函數內有效。退出當前函數,其變量即釋放。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表