DAPP合約系統開發邏輯技術丨DAPP成熟系統開發技術方案

Tg_StPv888發表於2023-03-09

  所謂動態呼叫,是指呼叫者合約不需要提前知道被呼叫合約的介面,只需要在呼叫時,告訴呼叫者被調合約的方法簽名即可。呼叫者合約不需要事前繫結被調者的介面,可以在呼叫時,指定任意被呼叫合約及其方法,系統詳細搭建I8O28578624


  前面講解了那麼多中斷知識,如果大家不理解也沒有關係,我們會應用即可,等到後面STM32熟練了,再回過頭深入瞭解自然就會明白。要使用中斷我們就需要先配置它,通常都需經過這幾步:


  (1)使能外設某個中斷,這個具體是由外設相關中斷使能位來控制,比如


  定時器有溢位中斷,這個可由定時器的控制暫存器中相應中斷使能位來控制。


  (2)設定中斷優先順序分組,初始化NVIC_InitTypeDef結構體,設定搶佔


  優先順序和響應優先順序,使能中斷請求。


  NVIC_InitTypeDef結構體如下:v_StPv888


  typedef struct


  {


  uint8_t NVIC_IRQChannel;//中斷源


  uint8_t NVIC_IRQChannelPreemptionPriority;//搶佔優先順序


  uint8_t NVIC_IRQChannelSubPriority;//響應優先順序


  FunctionalState NVIC_IRQChannelCmd;//中斷使能或失能


  }NVIC_InitTypeDef;


  下面我們對NVIC_InitTypeDef結構體成員進行一下簡單介紹。


  1.NVIC_IRQChannel:中斷源的設定,不同的外設中斷,中斷源不一樣,自


  然名字也不一樣,所以名字不能寫錯,否則不會進入中斷。中斷源放在stm32f10x.h檔案的IRQn_Type結構體內,由於內容太多,這裡就不復制所有中斷源,只擷取一部分,如下:


  typedef enum IRQn


  {


  //Cortex-M3處理器異常編號


  NonMaskableInt_IRQn=-14,


  MemoryManagement_IRQn=-12,


  BusFault_IRQn=-11,


  UsageFault_IRQn=-10,


  SVCall_IRQn=-5,


  DebugMonitor_IRQn=-4,


  PendSV_IRQn=-2,


  SysTick_IRQn=-1,


  //STM32外部中斷編號


  WWDG_IRQn=0,


  PVD_IRQn=1,


  TAMP_STAMP_IRQn=2,


  //限於篇幅,中間部分程式碼省略,具體的可檢視庫檔案stm32f10x.h


  DMA2_Channel2_IRQn=57,


  DMA2_Channel3_IRQn=58,


  DMA2_Channel4_5_IRQn=59


  }IRQn_Type;


  2.NVIC_IRQChannelPreemptionPriority:搶佔優先順序,具體的值要根據優先順序分組來確定,可以參考前面中斷優先順序分組內容。


  3.NVIC_IRQChannelSubPriority:響應優先順序,具體的值要根據優先順序分組


  來確定,可以參考前面中斷優先順序分組內容。


  4.NVIC_IRQChannelCmd:中斷使能/失能設定,使能配置為ENABLE,失能配置為DISABLE。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2938754/,如需轉載,請註明出處,否則將追究法律責任。

相關文章