luat_mcu.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef LUAT_MCU_H
  2. #define LUAT_MCU_H
  3. #include "luat_base.h"
  4. typedef enum
  5. {
  6. LUAT_MCU_PERIPHERAL_UART,
  7. LUAT_MCU_PERIPHERAL_I2C,
  8. LUAT_MCU_PERIPHERAL_SPI,
  9. LUAT_MCU_PERIPHERAL_PWM,
  10. LUAT_MCU_PERIPHERAL_CAN,
  11. LUAT_MCU_PERIPHERAL_GPIO,
  12. LUAT_MCU_PERIPHERAL_I2S,
  13. LUAT_MCU_PERIPHERAL_SDIO,
  14. LUAT_MCU_PERIPHERAL_LCD,
  15. LUAT_MCU_PERIPHERAL_CAMERA,
  16. LUAT_MCU_PERIPHERAL_ONEWIRE,
  17. LUAT_MCU_PERIPHERAL_KEYBORAD,
  18. LUAT_MCU_PERIPHERAL_QTY
  19. }LUAT_MCU_PERIPHERAL_E;
  20. int luat_mcu_set_clk(size_t mhz);
  21. int luat_mcu_get_clk(void);
  22. const char* luat_mcu_unique_id(size_t* t);
  23. long luat_mcu_ticks(void);
  24. uint32_t luat_mcu_hz(void);
  25. uint64_t luat_mcu_tick64(void);
  26. int luat_mcu_us_period(void);
  27. uint64_t luat_mcu_tick64_ms(void);
  28. void luat_mcu_set_clk_source(uint8_t source_main, uint8_t source_32k, uint32_t delay);
  29. #if 0
  30. /**
  31. * @brief 用户是否设置了外设的IOMUX
  32. * @param type 外设类型 LUAT_MCU_PERIPHERAL_XXX
  33. * @param sn 外设序号,0~7
  34. * @return 0 用户配置了 1用户没配置
  35. */
  36. uint8_t luat_mcu_iomux_is_default(uint8_t type, uint8_t sn);
  37. #endif
  38. /**
  39. * @brief 用户控制外设的IOMUX,如果不配置或者取消,则外设初始化时使用默认配置,已废弃
  40. * @param type 外设类型 LUAT_MCU_PERIPHERAL_XXX
  41. * @param sn 外设序号,0~7
  42. * @param pad_index pad序号,具体看芯片,可能是GPIO序号,可能是PAD序号。如果是-1,则表示取消配置
  43. * @param alt 复用功能序号,具体看芯片
  44. * @param is_input,是否是单纯输入功能
  45. * @return 无
  46. */
  47. void luat_mcu_iomux_ctrl(uint8_t type, uint8_t sn, int pad_index, uint8_t alt, uint8_t is_input);
  48. void luat_mcu_set_hardfault_mode(int mode);
  49. /**
  50. * @brief 外部晶振参考信号输出
  51. * @param main_enable 主晶振参考信号输出使能,0关闭,其他开启
  52. * @param slow_32k_enable 慢速(一般是32K)晶振参考信号输出使能,0关闭,其他开启
  53. * @return 无
  54. */
  55. void luat_mcu_xtal_ref_output(uint8_t main_enable, uint8_t slow_32k_enable);
  56. #endif