adc

Dependents:   h7adc

Committer:
yuliyasm
Date:
Tue Oct 27 12:13:16 2020 +0000
Revision:
1:5796bdddf29c
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuliyasm 1:5796bdddf29c 1 #include "communication.h"
yuliyasm 1:5796bdddf29c 2 #include "cmsis_os.h"
yuliyasm 1:5796bdddf29c 3
yuliyasm 1:5796bdddf29c 4 extern UART_HandleTypeDef huart3;
yuliyasm 1:5796bdddf29c 5 enum _BOOL_ uart3PkgTransmited = _FALSE_;
yuliyasm 1:5796bdddf29c 6 enum _BOOL_ uart3PkgReceived = _FALSE_;
yuliyasm 1:5796bdddf29c 7
yuliyasm 1:5796bdddf29c 8 extern SPI_HandleTypeDef hspi1;
yuliyasm 1:5796bdddf29c 9 enum _BOOL_ spi1PkgTransmited = _FALSE_;
yuliyasm 1:5796bdddf29c 10 enum _BOOL_ spi1PkgReceived = _FALSE_;
yuliyasm 1:5796bdddf29c 11 enum OP_TYPE spi1OpType = NONE;
yuliyasm 1:5796bdddf29c 12 uint8_t *spi1Buf;
yuliyasm 1:5796bdddf29c 13 uint8_t spi1Len;
yuliyasm 1:5796bdddf29c 14
yuliyasm 1:5796bdddf29c 15 //void ReceiveUARTPackage(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len)
yuliyasm 1:5796bdddf29c 16 //{
yuliyasm 1:5796bdddf29c 17 // TickType_t timeBegin = xTaskGetTickCount();
yuliyasm 1:5796bdddf29c 18 // HAL_StatusTypeDef err = HAL_UART_Receive_DMA(huart, buf, len);
yuliyasm 1:5796bdddf29c 19 // while (!uart3PkgReceived && xTaskGetTickCount() - timeBegin < COMMUNICATION_WAITTING) osDelay(COMMUNICATION_DELAY);
yuliyasm 1:5796bdddf29c 20 //
yuliyasm 1:5796bdddf29c 21 // uart3PkgReceived = _FALSE_;
yuliyasm 1:5796bdddf29c 22 //}
yuliyasm 1:5796bdddf29c 23 //
yuliyasm 1:5796bdddf29c 24 //
yuliyasm 1:5796bdddf29c 25 //
yuliyasm 1:5796bdddf29c 26 //void TransmitUARTPackage(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len)
yuliyasm 1:5796bdddf29c 27 //{
yuliyasm 1:5796bdddf29c 28 // TickType_t timeBegin = xTaskGetTickCount();
yuliyasm 1:5796bdddf29c 29 // HAL_StatusTypeDef err = HAL_UART_Transmit_DMA(huart, buf, len);
yuliyasm 1:5796bdddf29c 30 // while (!uart3PkgTransmited && xTaskGetTickCount() - timeBegin < COMMUNICATION_WAITTING) osDelay(COMMUNICATION_DELAY);
yuliyasm 1:5796bdddf29c 31 //
yuliyasm 1:5796bdddf29c 32 // uart3PkgTransmited = _FALSE_;
yuliyasm 1:5796bdddf29c 33 //}
yuliyasm 1:5796bdddf29c 34 //
yuliyasm 1:5796bdddf29c 35 //
yuliyasm 1:5796bdddf29c 36 //
yuliyasm 1:5796bdddf29c 37 //void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
yuliyasm 1:5796bdddf29c 38 //{
yuliyasm 1:5796bdddf29c 39 // if(huart == &huart3) {
yuliyasm 1:5796bdddf29c 40 // uart3PkgTransmited = _TRUE_;
yuliyasm 1:5796bdddf29c 41 // }
yuliyasm 1:5796bdddf29c 42 //}
yuliyasm 1:5796bdddf29c 43 //
yuliyasm 1:5796bdddf29c 44 //
yuliyasm 1:5796bdddf29c 45 //
yuliyasm 1:5796bdddf29c 46 //void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
yuliyasm 1:5796bdddf29c 47 //{
yuliyasm 1:5796bdddf29c 48 // if(huart == &huart3){
yuliyasm 1:5796bdddf29c 49 // uart3PkgReceived = _TRUE_;
yuliyasm 1:5796bdddf29c 50 // }
yuliyasm 1:5796bdddf29c 51 //}
yuliyasm 1:5796bdddf29c 52
yuliyasm 1:5796bdddf29c 53
yuliyasm 1:5796bdddf29c 54
yuliyasm 1:5796bdddf29c 55 void WriteToRegisterBySPI(SPI_HandleTypeDef *hspi, uint8_t addr, uint8_t *buf, uint8_t len)
yuliyasm 1:5796bdddf29c 56 {
yuliyasm 1:5796bdddf29c 57 //TickType_t timeBegin = xTaskGetTickCount();
yuliyasm 1:5796bdddf29c 58
yuliyasm 1:5796bdddf29c 59 enum _BOOL_ *cpltCheck;
yuliyasm 1:5796bdddf29c 60 if(hspi == &hspi1) {
yuliyasm 1:5796bdddf29c 61 spi1Buf = buf;
yuliyasm 1:5796bdddf29c 62 spi1Len = len;
yuliyasm 1:5796bdddf29c 63 spi1OpType = WRITE;
yuliyasm 1:5796bdddf29c 64 cpltCheck = &spi1PkgTransmited;
yuliyasm 1:5796bdddf29c 65 }
yuliyasm 1:5796bdddf29c 66
yuliyasm 1:5796bdddf29c 67 HAL_SPI_Transmit_DMA(hspi, &addr, 1);
yuliyasm 1:5796bdddf29c 68 // while (!*cpltCheck && xTaskGetTickCount() - timeBegin < COMMUNICATION_WAITTING) osDelay(COMMUNICATION_DELAY);
yuliyasm 1:5796bdddf29c 69 *cpltCheck = _FALSE_;
yuliyasm 1:5796bdddf29c 70 }
yuliyasm 1:5796bdddf29c 71
yuliyasm 1:5796bdddf29c 72
yuliyasm 1:5796bdddf29c 73
yuliyasm 1:5796bdddf29c 74 void ReadFromRegisterBySPI(SPI_HandleTypeDef *hspi, uint8_t addr, uint8_t *buf, uint8_t len)
yuliyasm 1:5796bdddf29c 75 {
yuliyasm 1:5796bdddf29c 76 // TickType_t timeBegin = xTaskGetTickCount();
yuliyasm 1:5796bdddf29c 77
yuliyasm 1:5796bdddf29c 78 enum _BOOL_ *cpltCheck;
yuliyasm 1:5796bdddf29c 79 if(hspi == &hspi1) {
yuliyasm 1:5796bdddf29c 80 spi1Buf = buf;
yuliyasm 1:5796bdddf29c 81 spi1Len = len;
yuliyasm 1:5796bdddf29c 82 spi1OpType = READ;
yuliyasm 1:5796bdddf29c 83 cpltCheck = &spi1PkgReceived;
yuliyasm 1:5796bdddf29c 84 }
yuliyasm 1:5796bdddf29c 85
yuliyasm 1:5796bdddf29c 86 uint8_t addrBuf = addr;
yuliyasm 1:5796bdddf29c 87 HAL_SPI_Transmit_DMA(hspi, &addrBuf, 1);
yuliyasm 1:5796bdddf29c 88 // while (!*cpltCheck && xTaskGetTickCount() - timeBegin < COMMUNICATION_WAITTING) osDelay(COMMUNICATION_DELAY);
yuliyasm 1:5796bdddf29c 89 *cpltCheck = _FALSE_;
yuliyasm 1:5796bdddf29c 90 }
yuliyasm 1:5796bdddf29c 91
yuliyasm 1:5796bdddf29c 92
yuliyasm 1:5796bdddf29c 93
yuliyasm 1:5796bdddf29c 94 void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi)
yuliyasm 1:5796bdddf29c 95 {
yuliyasm 1:5796bdddf29c 96 if(hspi == &hspi1) {
yuliyasm 1:5796bdddf29c 97 switch (spi1OpType)
yuliyasm 1:5796bdddf29c 98 {
yuliyasm 1:5796bdddf29c 99 case WRITE:
yuliyasm 1:5796bdddf29c 100 spi1OpType = CPLT;
yuliyasm 1:5796bdddf29c 101 HAL_SPI_Transmit_DMA(hspi, spi1Buf, spi1Len);
yuliyasm 1:5796bdddf29c 102 break;
yuliyasm 1:5796bdddf29c 103 case READ:
yuliyasm 1:5796bdddf29c 104 spi1OpType = CPLT;
yuliyasm 1:5796bdddf29c 105 HAL_SPI_Receive_DMA(hspi, spi1Buf, spi1Len);
yuliyasm 1:5796bdddf29c 106 break;
yuliyasm 1:5796bdddf29c 107 case CPLT:
yuliyasm 1:5796bdddf29c 108 spi1PkgTransmited = _TRUE_;
yuliyasm 1:5796bdddf29c 109 spi1OpType = NONE;
yuliyasm 1:5796bdddf29c 110 break;
yuliyasm 1:5796bdddf29c 111 case NONE:
yuliyasm 1:5796bdddf29c 112 break;
yuliyasm 1:5796bdddf29c 113 }
yuliyasm 1:5796bdddf29c 114 }
yuliyasm 1:5796bdddf29c 115 }
yuliyasm 1:5796bdddf29c 116
yuliyasm 1:5796bdddf29c 117
yuliyasm 1:5796bdddf29c 118
yuliyasm 1:5796bdddf29c 119 void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi)
yuliyasm 1:5796bdddf29c 120 {
yuliyasm 1:5796bdddf29c 121 if(hspi == &hspi1) {
yuliyasm 1:5796bdddf29c 122 spi1PkgReceived = _TRUE_;
yuliyasm 1:5796bdddf29c 123 spi1OpType = NONE;
yuliyasm 1:5796bdddf29c 124 }
yuliyasm 1:5796bdddf29c 125 }
yuliyasm 1:5796bdddf29c 126