PE43711.c 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. * PE43711.c
  3. *
  4. * Created on: 2019. 6. 28.
  5. * Author: parkyj
  6. */
  7. #include "PE43711.h"
  8. typedef struct{
  9. uint16_t ATT_EN_1_8G_DL1_PIN;
  10. GPIO_TypeDef *ATT_EN_1_8G_DL1_PORT;
  11. uint16_t ATT_EN_1_8G_DL2_PIN;
  12. GPIO_TypeDef *ATT_EN_1_8G_DL2_PORT;
  13. uint16_t ATT_EN_1_8G_UL1_PIN;
  14. GPIO_TypeDef *ATT_EN_1_8G_UL1_PORT;
  15. uint16_t ATT_EN_1_8G_UL2_PIN;
  16. GPIO_TypeDef *ATT_EN_1_8G_UL2_PORT;
  17. uint16_t ATT_EN_1_8G_UL3_PIN;
  18. GPIO_TypeDef *ATT_EN_1_8G_UL3_PORT;
  19. uint16_t ATT_EN_1_8G_UL4_PIN;
  20. GPIO_TypeDef *ATT_EN_1_8G_UL4_PORT;
  21. }PE43711_st;
  22. PE43711_st *Atten_1_8Ghz;
  23. PE43711_st *Atten_2_1Ghz;
  24. void PE43711_PinInit(void){
  25. Atten_1_8Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
  26. Atten_1_8Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
  27. Atten_1_8Ghz->ATT_EN_1_8G_DL2_PIN = GPIO_PIN_1;
  28. Atten_1_8Ghz->ATT_EN_1_8G_DL2_PORT = GPIOB;
  29. Atten_1_8Ghz->ATT_EN_1_8G_UL1_PIN = GPIO_PIN_1;
  30. Atten_1_8Ghz->ATT_EN_1_8G_UL1_PORT = GPIOB;
  31. Atten_1_8Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
  32. Atten_1_8Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
  33. Atten_1_8Ghz->ATT_EN_1_8G_UL2_PIN = GPIO_PIN_1;
  34. Atten_1_8Ghz->ATT_EN_1_8G_UL2_PORT = GPIOB;
  35. Atten_1_8Ghz->ATT_EN_1_8G_UL3_PIN = GPIO_PIN_1;
  36. Atten_1_8Ghz->ATT_EN_1_8G_UL3_PORT = GPIOB;
  37. Atten_1_8Ghz->ATT_EN_1_8G_UL4_PIN = GPIO_PIN_1;
  38. Atten_1_8Ghz->ATT_EN_1_8G_UL4_PORT = GPIOB;
  39. Atten_2_1Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
  40. Atten_2_1Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
  41. Atten_2_1Ghz->ATT_EN_1_8G_DL2_PIN = GPIO_PIN_1;
  42. Atten_2_1Ghz->ATT_EN_1_8G_DL2_PORT = GPIOB;
  43. Atten_2_1Ghz->ATT_EN_1_8G_UL1_PIN = GPIO_PIN_1;
  44. Atten_2_1Ghz->ATT_EN_1_8G_UL1_PORT = GPIOB;
  45. Atten_2_1Ghz->ATT_EN_1_8G_DL1_PIN = GPIO_PIN_1;
  46. Atten_2_1Ghz->ATT_EN_1_8G_DL1_PORT = GPIOB;
  47. Atten_2_1Ghz->ATT_EN_1_8G_UL2_PIN = GPIO_PIN_1;
  48. Atten_2_1Ghz->ATT_EN_1_8G_UL2_PORT = GPIOB;
  49. Atten_2_1Ghz->ATT_EN_1_8G_UL3_PIN = GPIO_PIN_1;
  50. Atten_2_1Ghz->ATT_EN_1_8G_UL3_PORT = GPIOB;
  51. Atten_2_1Ghz->ATT_EN_1_8G_UL4_PIN = GPIO_PIN_1;
  52. Atten_2_1Ghz->ATT_EN_1_8G_UL4_PORT = GPIOB;
  53. }
  54. void PE43711_atten_ctrl(PE43711_st* Atten_xGhz ,double data){
  55. uint8_t i = 0;
  56. uint8_t temp = 0;
  57. data = 4 * data;
  58. temp = (uint8_t)data;
  59. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
  60. HAL_Delay(1);
  61. for(i = 0; i < 8; i++){
  62. if((uint8_t)temp & 0x01){
  63. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//DATA
  64. }
  65. else{
  66. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  67. }
  68. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//CLOCK
  69. HAL_Delay(1);
  70. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
  71. HAL_Delay(1);
  72. temp >>= 1;
  73. }
  74. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
  75. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  76. HAL_Delay(5);
  77. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//LE
  78. HAL_Delay(1);
  79. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
  80. }