9 HAL CAN Generic Driver

  • 71 Replies
  • 813 Views
*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #16 on: July 18, 2022, 10:13:36 am »
Interrupt mode operation
1.   Notifications ถูกทำให้ทำงานโดยใช้ HAL_CAN_ActivateNotification() function. จากนั้น, the process สามารถถูกควบคุม
      ผ่านทาง the available user callbacks: HAL_CAN_xxxCallback(), โดยใช้ APIs เดียวกัน HAL_CAN_GetRxMessage()
      and HAL_CAN_AddTxMessage().
2.   Notifications สามารถถูกยกเลิกการทำงานโดยใช้ HAL_CAN_DeactivateNotification() function.
3.   ควรใช้ความระมัดระวังเป็นพิเศษสำหรับ CAN_IT_RX_FIFO0_MSG_PENDING and CAN_IT_RX_FIFO1_MSG_PENDING
      notifications. These notifications จะทริก the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and
      HAL_CAN_RxFIFO1MsgPendingCallback(). ผู้ใช้มีสองทางเลือกที่สามารถเป็นได้นี้.
      –   รับ the Rx message โดยตรงใน the callback, โดยใช้ HAL_CAN_GetRxMessage().
      –   หรือยกเลิกการทำงาน the notification ใน the callback โดยไม่มีการรับ the Rx message. The Rx message ดังนั้น
           สามารถได้รับภายหลังโดยใช้ HAL_CAN_GetRxMessage(). เมื่อ the Rx message ถูกอ่านแล้ว, the notification สามารถ
           ถูกทำให้ทำงานอีกครั้ง.

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #17 on: July 19, 2022, 09:13:16 am »
Sleep mode
1.   The CAN peripheral สามารถถูกใส่ใน sleep mode (low power), โดยใช้ HAL_CAN_RequestSleep(). The sleep mode
      จะถูกเข้าสู่ทันทีที่ the current CAN activity (transmission or reception of a CAN frame) จะเสร็จสมบูรณ์.
2.   A notification สามารถถูกทำให้ทำงานเพื่อถูกแจ้งข่าวเมื่อ the sleep mode จะถูกเข้าสู่.
3.   มันสามารถถูกเช็คว่า the sleep mode ถูกเข้าสู่หรือไม่โดยใช้ HAL_CAN_IsSleepActive(). โดยทราบว่า the CAN state (เข้าถึง
      ได้จาก the API HAL_CAN_GetState()) เป็น HAL_CAN_STATE_SLEEP_PENDING ทันทีที่ the sleep mode request ถูก
      ส่ง (the sleep mode ยังไม่ถูกเข้าสู่), และกลายมาเป็น HAL_CAN_STATE_SLEEP_ACTIVE เมื่อ the sleep mode มีผล.
4.   The wake-up จาก sleep mode สามารถถูกทริกโดยสองวิธีนี้:
      –   โดยใช้ HAL_CAN_WakeUp(). เมื่อส่งคืนกลับจากฟังชั่นนี้, the sleep mode จะถูกออก (ถ้า return status คือ HAL_OK).
      –   เมื่อ a start of Rx CAN frame ถูกตรวจพบโดย the CAN peripheral, ถ้า automatic wake up mode ถูกเปิดใช้งาน.

Callback registration

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #18 on: July 19, 2022, 09:39:19 am »

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #19 on: July 19, 2022, 09:40:07 am »

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #20 on: July 19, 2022, 10:17:39 am »


*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #21 on: July 20, 2022, 08:15:03 am »

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #22 on: July 20, 2022, 08:15:51 am »

*

Offline tha

  • *****
  • 4150
    • View Profile
Re: 9 HAL CAN Generic Driver
« Reply #23 on: July 20, 2022, 08:25:04 am »