9 HAL CAN Generic Driver

Started by tha, July 10, 2022, 01:55:27 PM

Previous topic - Next topic

tha

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 สามารถ
           ถูกทำให้ทำงานอีกครั้ง.

tha

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

tha



tha


tha


tha


tha


tha