吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32基礎知識:中斷系統

CHANBAEK ? 來源:上下求索電子er ? 作者:上下求索電子er ? 2023-10-24 15:17 ? 次閱讀

中斷系統

1 數據傳輸方式

  • 無條件傳輸處理器不必了解外部設備狀態,直接進行數據傳輸,用于指示燈和按鍵等簡單設備.。
  • 查詢方式 :傳輸前,一方先查詢另一方的狀態,若已經準備好就傳輸,否則就繼續查詢。
  • 中斷方式 :一方通過申請中斷的方式與另一方進行數據傳輸,收發雙方可以并行工作。
  • 直接存儲器訪問 :處理器內部建立片內外設和內存之間的數據傳輸通道,傳輸過程不需要處理器參與。

2 中斷系統的基本概念

2.1 中斷全過程

  • 中斷發生:CPU在處理某一事件A時,發生了另一事件B,請求CPU迅速去處理。
  • 中斷處理: CPU暫停當前的工作,轉去處理事件B。
  • 中斷返回: 當CPU將事件B處理完畢后,再回到事件A中被暫停的地方繼續處理事件A。

圖片

2.2 中斷的作用

  • 速度匹配: 可以解決快速的CPU與慢速的外部設備之間傳送數據的矛盾。
  • 分時操作: CPU可以分時為多個外部設備服務,提高計算機的利用率。
  • 實時響應: CPU能夠及時處理應用系統的隨機事件,增強系統的實時性。
  • 可靠性高: CPU可以處理設備故障及掉電等突發事件,提高系統可靠性。

2.3 中斷優先級

處理器根據不同中斷的重要程序設置不同的優先等級。

不同優先級中斷的處理原則是: 高級中斷可以打斷低級中斷;低級中斷不能打斷高級中斷

圖片

2.4 中斷向量

  • 中斷服務程序: 在響應一個特定中斷的時候,處理器會執行一個函數,該函數一般稱為中斷處理程序或者中斷服務程序。
  • 中斷向量: 中斷服務程序在內存中的入口地址稱為中斷向量。
  • 中斷向量表: 把系統中所有的中斷向量集中起來放到存儲器的某一區。
  • 查找中斷向量:
    • 編號:計算機系統對每一個中斷源進行編號,這個號碼稱為中斷類型號。
    • 查表:根據中斷類型號,到中斷向量表中找到對應的表項。
    • 執行:取出表項內容,即該中斷源對應的中斷服務程序地址,進入該程序執行相應操作。

2.5 中斷響應過程

  1. 中斷源發出中斷請求。
  2. 判斷處理器是否允許中斷,以及該中斷源是否被屏蔽。
  3. 中斷優先級排隊。
  4. 處理器暫停當前程序,保護斷點地址和處理器的當前狀態,根據中斷類型號,查找中斷向量表,轉到對應的中斷服務程序。
  5. 執行中斷服務程序。
  6. 恢復被保護的狀態,執行中斷返回指令,回到被中斷的程序。

3 STM32微控制器中斷系統

3.1 基本概念

  • 中斷: 中斷是由內核外部產生的,一般由硬件引起,比如外設中斷和外部中斷等。
  • 異常: 異常通常是內核自身產生的,大多是軟件引起的,比如除法出錯異常、預取值失敗等。

3.2 NVIC嵌套向量中斷控制器

NVIC屬于Cortex-M內核的組件,管理所有的中斷和異常,為中斷源分配中斷通道

圖片

圖片

中斷向量表

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1_2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C2 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTC_Alarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
__Vectors_End

3.3 中斷通道

微控制器片內集成了很多外設,對于單個外設而言,它通常具備若干個可以引起中斷的中斷源,而該外設的所有中斷源只能通過指定的中斷通道向內核申請中斷。

以STM32F103芯片為例,它支持43個可屏蔽中斷通道(不包括16個Cortex-M3的中斷線),已經固定分配給相應的片內外設。由于中斷源數量較多,而中斷通道有限,會出現多個中斷源共享同一個中斷通道的情況。

3.4 中斷優先級

  • NVIC中有一個8位中斷優先級寄存器NVIC_IPR,理論上可以配置0~255共256級中斷。
  • STM32只使用了其中的高4位,并分成搶占優先級子優先級兩組。

中斷嵌套:

多個中斷同時提出中斷申請時

  • 先比較搶占優先級,搶占優先級高的中斷先執行。
  • 如果搶占優先級相同,則比較子優先級。
  • 二者都相同時,比較中斷編號。編號越小,優先級越高。中斷編號位于芯片頭文件中。

STM32中斷優先級分組

圖片

HAL庫初始化函數HAL_Init將優先級分組設置為第4組,即有0~15,共16級搶占優先級,沒有子優先級。編號越小的優先級越高:0號為最高,15號為最低。

3.5 EXIT外部中斷控制器

圖片

GPIO引腳的外部中斷

觸發方式:

  • 上升沿觸發
  • 下降沿觸發
  • 雙邊沿觸發

引腳分組:

  • 尾號相同的引腳一組,接入1個外部中斷線。
  • 同組引腳只能有一個設置為外部中斷功能。

中斷通道:

  • EXTI0~EXIT4分別具有獨立的中斷通道
  • EXTI5~EXIT9共享同一個中斷通道
  • EXTI5~EXIT9共享同一個中斷通道

圖片

4 HAL庫中斷處理流程

4.1 編程步驟

在STM32CubeMX中完成

  1. 設置中斷觸發條件
  2. 設置中斷優先等級
  3. 設能外設中斷

HAL庫的接口函數完成

  1. 清除中斷標志
  2. 編寫中斷服務程序

4.2 HAL庫對中斷的封裝處理

  • 統一規定處理各個外設的中斷服務程序HAL_PPP_IRQHandler
  • 在中斷服務程序HAL_PPP_IRQHandler完成了中斷標志的判斷和清除。
  • 將中斷中需要執行的操作以回調函數的形式提供給用戶。

啟動文件startup_stm32fxxx.s

  • 該文件存放在MDK-ARM組中。在該文件中,預先為每個中斷編寫了一個中斷服務程序,只是這些中斷服務程序都是死循環,目的只是 初始化中斷向量表
  • 中斷服務程序的屬性定義為“weak”。weak屬性的函數表示:如果該函數沒有在其他文件中定義,則使用該函數;如果用戶在其他地方定義了該函數,則使用用戶定義的函數。

中斷服務程序文件:stm32fxxx_it.c

  • 該文件存放在User組中,用于 存放各個中斷的中斷服務程序

  • 在使用CubeMX軟件進行初始化配置時,如果使能了某一個外設的中斷功能,那么在生成代碼時,相對應的外設中斷服務程序HAL_PPP_IRQHandler就會自動添加到該文件中,用戶只需要在該函數中添加相應的中斷處理代碼即可。
    外部中斷所對應的中斷服務程序

    外部中斷線中斷服務程序的函數名稱
    外部中斷線0(EXTI Line 0)EXTI0_IRQHandler
    外部中斷線1(EXTI Line 1)EXTI1_IRQHandler
    外部中斷線2(EXTI Line 2)EXTI2_IRQHandler
    外部中斷線3(EXTI Line 3)EXTI3_IRQHandler
    外部中斷線4(EXTI Line 4)EXTI4_IRQHandler
    外部中斷線5~9(EXTI Line[9:5])EXTI9_5_IRQHandler
    外部中斷線10~15(EXTI Line[15:10])EXTI15_10_IRQHandler

    例如

    /**
      * @brief This function handles EXTI line0 interrupt.
      */
    void EXTI0_IRQHandler(void)
    {
      /* USER CODE BEGIN EXTI0_IRQn 0 */
    
      /* USER CODE END EXTI0_IRQn 0 */
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
      /* USER CODE BEGIN EXTI0_IRQn 1 */
    
      /* USER CODE END EXTI0_IRQn 1 */
    }
    

4.3 外部中斷處理流程

假設微控制器芯片為STM32F103,設置引腳PA0為外部中斷功能。當引腳PA0出現脈沖邊沿時,將觸發外部中斷。

由于外部中斷主要是利用GPIO引腳實現,因此外部中斷數據類型的定義放在stm32f1xx_hal_gpio.h文件中,外部中斷接口函數的實現放在stm32f1xx_hal_gpio.c文件中。

  1. 引腳初始化
    圖片
    成員變量Mode的取值范圍

    • GPIO_MODE_IT_RISING 上升沿觸發
    • GPIO_MODE_IT_FALLING 下降沿觸發
    • GPIO_MODE_IT_RISING_FALLING 雙邊沿觸發
  2. 外部中斷通用處理函數HAL_GPIO_EXTI_IRQHandler

    /**
      * @brief  This function handles EXTI interrupt request.
      * @param  GPIO_Pin: Specifies the pins connected EXTI line
      * @retval None
      */
    void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
    {
      /* EXTI line interrupt detected */
      if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
      {
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
        HAL_GPIO_EXTI_Callback(GPIO_Pin);
      }
    }
    
    函數原型void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
    功能描述作為所有外部中斷發生后的通用處理函數
    入口參數GPIO_Pin:連接到對應外部中斷線的引腳,范圍是 GPIO_PIN_0~GPIO_PIN_15
    返回值
    注意事項1. 所有外部中斷服務程序均調用該函數完成中斷處理2. 函數內部根據GPIO_Pin的取值判斷中斷源,并清除對應外部中斷線的中斷標志3. 函數內部調用外部中斷回調函數HAL_GPIO_EXTI_Callback完成實際的處理任務4. 該函數由CubeMX自動生成
  3. 外部中斷回調函數HAL_GPIO_EXTI_Callback

    /**
      * @brief  EXTI line detection callbacks.
      * @param  GPIO_Pin: Specifies the pins connected EXTI line
      * @retval None
      */
    __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
      /* Prevent unused argument(s) compilation warning */
      UNUSED(GPIO_Pin);
      /* NOTE: This function Should not be modified, when the callback is needed,
               the HAL_GPIO_EXTI_Callback could be implemented in the user file
       */
    }
    
    函數原型void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    功能描述外部中斷回調函數,用于處理具體的中斷任務
    入口參數GPIO_Pin:連接到對應外部中斷線的引腳,范圍是 GPIO_PIN_0~GPIO_PIN_15
    返回值
    注意事項1. 該函數由外部中斷通用處理函數HAL_GPIO_EXTI_IRQHandler調用,完成所有外部中斷的任務處理2. 函數內部先根據GPIO_Pin的取值來判斷中斷源,然后執行對應的中斷任務3. 該函數由用戶根據實際需求編寫

任務實踐

基于STM32F103C8T6,開發板原理圖

圖片

利用按鍵KEY1改變指示燈LED1的閃爍頻率,閃爍頻率設置為3檔:

  • 初始狀態時,LED1按照1Hz的頻率閃爍;
  • 第一次按鍵后,LED1按照5Hz的頻率閃爍;
  • 第二次按鍵后,LED1按照20Hz的頻率閃爍,并重復上述過程。

注:本任務例程使用的開發板,LED1與STM32的PA1相連接,KEY1與PA0相連接。KEY1原理圖如下:

圖片

使用按鍵時,需要設置PA0為輸入上拉模式,這樣在KEY1沒有按下時,PA0可以讀取到高電平,KEY1按下時PA0可以讀取到低電平。

  1. 配置PA0為GPIO_EXIT0,PA1為GPIO_Output
    圖片
  2. PA1保持默認GPIO輸出模式即可
    圖片
  3. PA0配置為下降沿觸發,上拉模式
    圖片
  4. 使能外部中斷線
    圖片
  5. 配置中斷優先級分組為第四組16級搶占優先級,沒有子優先級
    圖片

以上步驟生成如下代碼:

  • stm32f1xx_hal_gpio.c中生成GPIO引腳配置代碼,并在main.c中調用

    void MX_GPIO_Init(void)
    {
    
      GPIO_InitTypeDef GPIO_InitStruct = {0};
    
      /* GPIO Ports Clock Enable */
      __HAL_RCC_GPIOA_CLK_ENABLE();
      __HAL_RCC_GPIOB_CLK_ENABLE();
    
      /*Configure GPIO pin Output Level */
      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
    
      /*Configure GPIO pin : PA0 */
      GPIO_InitStruct.Pin = GPIO_PIN_0;
      GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
      /*Configure GPIO pin : PA1 */
      GPIO_InitStruct.Pin = GPIO_PIN_1;
      GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
      /* EXTI interrupt init*/
      HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
      HAL_NVIC_EnableIRQ(EXTI0_IRQn);
    
    }
    
    • 開啟外設時鐘RCC
    • 配置PA0,PA1兩個引腳結構體
    • 設置EXTI0中斷優先級為0,并使能這個中斷
  • stm32fxxx_it.c中生成外設中斷服務程序

    /**
      * @brief This function handles EXTI line0 interrupt.
      */
    void EXTI0_IRQHandler(void)
    {
      /* USER CODE BEGIN EXTI0_IRQn 0 */
    
      /* USER CODE END EXTI0_IRQn 0 */
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
      /* USER CODE BEGIN EXTI0_IRQn 1 */
    
      /* USER CODE END EXTI0_IRQn 1 */
    }
    
  1. 編寫程序
    main.c中定義指示燈閃爍頻率,0代表1Hz,1代表5Hz,2代表20Hz

    /* Private variables ---------------------------------------------------------*/
    
    /* USER CODE BEGIN PV */
    volatile uint8_t Speed = 0;
    /* USER CODE END PV */
    

    main.c中編寫應用代碼

    /* USER CODE BEGIN 3 */
        if (Speed == 0)
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(1000);
        }
        else if (Speed == 1)
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(200);
        }
        else
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(50);
        }
      }
      /* USER CODE END 3 */
    

    main.c中外部中斷回調函數HAL_GPIO_EXTI_Callback

    /* USER CODE BEGIN 4 */
     void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
     {
       if(GPIO_Pin == GPIO_PIN_0)
       {
         Speed++;
         if (Speed == 3)
         {
           Speed = 0;
         }
       }
     }
     /* USER CODE END 4 */
    
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7649

    瀏覽量

    152104
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231179
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357553
  • 中斷系統
    +關注

    關注

    1

    文章

    96

    瀏覽量

    61067
收藏 人收藏

    評論

    相關推薦

    功率器件熱設計基礎知識

    功率器件熱設計是實現IGBT、碳化硅SiC等高功率密度器件可靠運行的基礎。掌握功率半導體的熱設計基礎知識,不僅有助于提高功率器件的利用率和系統可靠性,還能有效降低系統成本。本文將從熱設計的基本概念、散熱形式、熱阻與導熱系數、功率
    的頭像 發表于 02-03 14:17 ?89次閱讀

    PCB繪制基礎知識

    電子發燒友網站提供《PCB繪制基礎知識.pdf》資料免費下載
    發表于 01-21 15:20 ?3次下載
    PCB繪制<b class='flag-5'>基礎知識</b>

    EMC基礎知識-華為

    EMC基礎知識-華為
    發表于 01-06 14:09 ?0次下載

    華為-射頻基礎知識培訓

    課程目標z 熟悉和掌握射頻基本概念和知識z 了解無線射頻系統結構z 了解天饋系統的概念和知課程內容第一章 無線通信的基本概念第二章 射頻常用計算單位簡介第三章 射頻常用概念辨析第四章 射頻系統
    發表于 12-10 13:39 ?1次下載

    品質管理基礎知識

    品質管理基礎知識
    的頭像 發表于 11-01 11:08 ?410次閱讀
    品質管理<b class='flag-5'>基礎知識</b>

    Verilog HDL的基礎知識

    本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識
    的頭像 發表于 10-24 15:00 ?592次閱讀
    Verilog HDL的<b class='flag-5'>基礎知識</b>

    負載開關基礎知識

    電子發燒友網站提供《負載開關基礎知識.pdf》資料免費下載
    發表于 10-08 09:56 ?1次下載
    負載開關<b class='flag-5'>基礎知識</b>

    全新的半導體基礎知識

    《全新的半導體基礎知識》首先對流行于電子書刊上數十年之久的經典半導體基礎知識中存在的謬誤進行了全方位的討論,然后以半導體內部結構為抓手,以G型半導體(客供電子型半導體)、H型半導體(主供電子型半導體
    的頭像 發表于 09-20 11:30 ?1370次閱讀
    全新的半導體<b class='flag-5'>基礎知識</b>

    超聲波傳感基礎知識

    電子發燒友網站提供《超聲波傳感基礎知識.pdf》資料免費下載
    發表于 09-04 10:21 ?0次下載
    超聲波傳感<b class='flag-5'>基礎知識</b>

    stm32怎樣觸發軟件中斷

    了解STM32中斷系統 STM32微控制器具有豐富的中斷系統,包括NVIC(嵌套向量
    的頭像 發表于 09-02 09:32 ?1056次閱讀

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?7次下載

    嵌入式系統軟硬件基礎知識大全

    嵌入式系統是現代科技發展的一個重要分支,廣泛應用于工業控制、消費電子、醫療設備、汽車電子等領域。本文試圖全面解析嵌入式系統的軟基礎知識,以期讓讀者對這一技術有更深入的了解。嵌入式系統
    發表于 05-09 14:12

    電子元件基礎知識介紹

    電子發燒友網站提供《電子元件基礎知識介紹.pptx》資料免費下載
    發表于 03-15 16:48 ?86次下載

    光纖通信技術基礎知識

    電子發燒友網站提供《光纖通信技術基礎知識.ppt》資料免費下載
    發表于 03-06 15:53 ?0次下載

    FPGA基礎知識介紹

    電子發燒友網站提供《FPGA基礎知識介紹.pdf》資料免費下載
    發表于 02-23 09:45 ?32次下載
    百家乐娱乐网送68元| 百家乐闲和庄| 百家乐网上真钱娱乐场开户注册| 二八杠论坛| 深水埗区| 百家乐官网透明牌靴| 网上百家乐哪家最好| 威尼斯人娱乐城位置| 皇冠备用网址| 百家乐官网发牌靴发牌盒| 百家乐网真人真钱群| 大发888真钱赌场娱乐网规则 | 中国百家乐官网技巧软件| 金城百家乐平台| 现金网系统出租| 真人百家乐官网破解软件下载| 百家乐官网发牌盒子| 百家乐必赢| 鹤岗市| 24山分房法| 大发888下载大发888娱乐城| 百家乐官网高档筹码| 百家乐去哪里玩最好| 大发888相关资讯| 南京百家乐官网菜籽油| 百家乐怎么稳赢| 通海县| 真人百家乐是骗局| 德州扑克游戏规则| 至尊百家乐官网20130402| 电玩百家乐的玩法技巧和规则 | 澳门百家乐官网长赢打| 大发888娱乐场下载 游戏平台| 百家乐官网赌场技巧论坛| 利来百家乐的玩法技巧和规则 | 百家乐网站开户| 马牌娱乐场| 百家乐投注组合| 明陞M88| 百家乐免费破解外挂| 澳门赌盘|