93 lines
2.5 KiB
C
93 lines
2.5 KiB
C
![]() |
#include "./BSP/ADS1278/ADS1278.h"
|
|||
|
|
|||
|
void ADS1278_Init(void){
|
|||
|
|
|||
|
GPIO_InitTypeDef GPIO_InitStruct;
|
|||
|
ADS1278_DRDY_GPIO_CLK_ENABLE(); /*DRDY<44><59><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD><CAB9>*/
|
|||
|
ADS1278_FORMAT_GPIO_CLK_ENABLE(); /*FORMAT<41><54><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD><CAB9>*/
|
|||
|
ADS1278_SYNC_GPIO_CLK_ENABLE(); /*SYNC<4E><43><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD><CAB9>*/
|
|||
|
|
|||
|
/*DRDY<44><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>ж<EFBFBD>*/
|
|||
|
GPIO_InitStruct.Pin = ADS1278_DRDY_Pin;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
|||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|||
|
HAL_GPIO_Init(ADS1278_DRDY_GPIO_Port, &GPIO_InitStruct);
|
|||
|
|
|||
|
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 1);
|
|||
|
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
|
|||
|
|
|||
|
/*FORMAT<41><54><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>*/
|
|||
|
GPIO_InitStruct.Pin = ADS1278_FORMAT_Pin;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|||
|
HAL_GPIO_Init(ADS1278_FORMAT_GPIO_Port, &GPIO_InitStruct);
|
|||
|
|
|||
|
HAL_GPIO_WritePin(ADS1278_FORMAT_GPIO_Port, ADS1278_FORMAT_Pin, GPIO_PIN_SET);
|
|||
|
|
|||
|
/*SYNC<4E><43><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼΪ<CABC>ߵ<EFBFBD>ƽ*/
|
|||
|
GPIO_InitStruct.Pin = ADS1278_SYNC_Pin;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|||
|
HAL_GPIO_Init(ADS1278_SYNC_GPIO_Port, &GPIO_InitStruct);
|
|||
|
|
|||
|
HAL_GPIO_WritePin(ADS1278_SYNC_GPIO_Port, ADS1278_SYNC_Pin, GPIO_PIN_SET);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void ADS1278_Reset(void){
|
|||
|
|
|||
|
/*SYNC<4E><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>CLK<4C><4B><EFBFBD><EFBFBD>*/
|
|||
|
HAL_GPIO_WritePin(ADS1278_SYNC_GPIO_Port, ADS1278_SYNC_Pin, GPIO_PIN_RESET);
|
|||
|
delay_ms(1);
|
|||
|
HAL_GPIO_WritePin(ADS1278_SYNC_GPIO_Port, ADS1278_SYNC_Pin, GPIO_PIN_SET);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
uint8_t DataBuffer[300];
|
|||
|
int num = 0;
|
|||
|
void ADS1278_Read_Data(void){
|
|||
|
uint8_t ReceiveDataArrary[24]; /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
HAL_SPI_Receive(&g_spi1_handler, ReceiveDataArrary, 24, 1000); /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
DataBuffer[num+0]= ReceiveDataArrary[21];
|
|||
|
DataBuffer[num+1]= ReceiveDataArrary[22];
|
|||
|
DataBuffer[num+2]= ReceiveDataArrary[23];
|
|||
|
num += 3;
|
|||
|
if(num >= 240){
|
|||
|
/* <20><>ͣ<EFBFBD>ɼ<EFBFBD> */
|
|||
|
HAL_GPIO_WritePin(ADS1278_SYNC_GPIO_Port, ADS1278_SYNC_Pin, GPIO_PIN_RESET);
|
|||
|
printf("\r\n<EFBFBD><EFBFBD>ʼ\r\n");
|
|||
|
for(int i=0; i<240;i++){
|
|||
|
|
|||
|
printf("%d\r\n",DataBuffer[i]);
|
|||
|
}
|
|||
|
printf("\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> */
|
|||
|
HAL_GPIO_WritePin(ADS1278_SYNC_GPIO_Port, ADS1278_SYNC_Pin, GPIO_PIN_SET);
|
|||
|
num = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
uint8_t SYNC_Flag = 0;
|
|||
|
/*DRDY<44>½<EFBFBD><C2BD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>*/
|
|||
|
void EXTI15_10_IRQHandler(void)
|
|||
|
{
|
|||
|
if(__HAL_GPIO_EXTI_GET_IT(ADS1278_DRDY_Pin) != RESET)
|
|||
|
{
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ
|
|||
|
__HAL_GPIO_EXTI_CLEAR_IT(ADS1278_DRDY_Pin);
|
|||
|
|
|||
|
if(SYNC_Flag == 0){
|
|||
|
/* <20>ϵ<EFBFBD><CFB5><EFBFBD>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λADS1278<37><38><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD> */
|
|||
|
ADS1278_Reset();
|
|||
|
SYNC_Flag = 1;
|
|||
|
}
|
|||
|
else{
|
|||
|
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
ADS1278_Read_Data();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|