cboard.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "cboard.h"
  2. #include "datadef.h"
  3. #include "mb.h"
  4. #include "log.h"
  5. static cboard_handle_t cbHandle={0};
  6. int read_reg(uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
  7. {
  8. cboard_handle_t *h=&cbHandle;
  9. return mb_read(h->mb, addr, reg, data, cnt, 800);
  10. }
  11. int write_reg(uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
  12. {
  13. cboard_handle_t *h=&cbHandle;
  14. return mb_write(h->mb, addr, reg, data, cnt);
  15. }
  16. ////////////////////////////////////////////////////////////////////
  17. ///////////////////////////////////////////////////////
  18. static board_fn_t board_fn[]={
  19. //
  20. };
  21. int cboard_init(void)
  22. {
  23. cboard_handle_t *h=&cbHandle;
  24. mb_para_t para={
  25. .mode = MB_MODE_MASTER,
  26. .type = MB_TYPE_RTU,
  27. .para = {
  28. .rtu = {
  29. .dev = POWER_PORT, //设备名
  30. .baudrate = 115200, //波特率
  31. .parity = 0, //校验位
  32. .pin = 1, //收发控制引脚, <0 表示不使用
  33. .lvl = 0, //发送控制电平
  34. }
  35. }
  36. };
  37. memset(h, 0, sizeof(cboard_handle_t));
  38. h->lck = lock_d_init();
  39. h->mb = mb_init(&para);
  40. if(!h->mb) {
  41. return -1;
  42. }
  43. return 0;
  44. }
  45. int cboard_deinit(void)
  46. {
  47. cboard_handle_t *h=&cbHandle;
  48. lock_d_deinit(h->lck);
  49. mb_deinit(h->mb);
  50. return 0;
  51. }