@@ -81,11 +81,10 @@ void sineF32(const float32_t frequency, const float32_t amplitude, const float32
81
81
82
82
void calculateVoltage (uint16_t VREFINT_DATA , uint16_t ADC_DATA , float32_t * pOut ) {
83
83
float32_t VREFINT_CAL = (float32_t ) * ((uint16_t * ) VREFINT_CAL_ADDR );
84
- float32_t Vdda = 3.0 * (VREFINT_CAL / ( float32_t ) VREFINT_DATA );
85
- * pOut = (Vdda / 4095 ) * (float32_t ) ADC_DATA ;
84
+ float32_t Vdda = 3.0 * (VREFINT_CAL / VREFINT_DATA );
85
+ * pOut = (Vdda / 4095 ) * (float32_t )ADC_DATA ;
86
86
}
87
87
88
- static float32_t sineValues [1024 ];
89
88
static uint32_t sec = 0 ;
90
89
volatile uint16_t adcChannels [4 ];
91
90
volatile int conversionComplete = 0 ;
@@ -126,34 +125,41 @@ int main(void)
126
125
MX_USART2_UART_Init ();
127
126
MX_ADC1_Init ();
128
127
/* USER CODE BEGIN 2 */
129
- float32_t V1 , V2 , V3 , V4 ;
130
- //HAL_TIM_Base_Start_IT(&htim2);
131
- /*float32_t x = 0.0f;
132
- float32_t fx;
133
- HAL_UART_Transmit(&huart2, (uint8_t *)"hello", 5, HAL_MAX_DELAY);
134
- for (uint16_t i = 0; i < 1024; i += 2) {
135
- float32_t *y = &sineValues[i];
136
- sineF32(1102.3f, 0.5f, 0.5f, x, y);
137
- sineValues[i+1] = 0;
138
- x += 0.00002268f;
139
- }
140
- fx = fft(sineValues, 1024, 1102, 92972972.97297);*/
128
+ float32_t hydrophone0 [1024 ];
129
+ float32_t hydrophone1 [1024 ];
130
+ float32_t hydrophone2 [1024 ];
131
+ float32_t V2 , V3 , V4 ;
132
+ uint32_t frequency ;
133
+ for (int i = 0 ; i < 512 ; i ++ ) {
134
+ hydrophone0 [2 * i + 1 ] = 0 ;
135
+ hydrophone1 [2 * i + 1 ] = 0 ;
136
+ hydrophone2 [2 * i + 1 ] = 0 ;
137
+ }
141
138
/* USER CODE END 2 */
142
139
143
140
/* Infinite loop */
144
141
/* USER CODE BEGIN WHILE */
145
142
while (1 )
146
143
{
147
- HAL_ADC_Start_DMA (& hadc1 , (uint32_t * ) adcChannels , 4 );
148
- while (conversionComplete == 0 ) {
149
- continue ;
144
+ for (int i = 0 ; i < 512 ; i ++ ) {
145
+ HAL_ADC_Start_DMA (& hadc1 , (uint32_t * ) adcChannels , 4 );
146
+ while (conversionComplete == 0 ) {
147
+ continue ;
148
+ }
149
+ conversionComplete = 0 ;
150
+ calculateVoltage (adcChannels [0 ], adcChannels [1 ], & V2 );
151
+ calculateVoltage (adcChannels [0 ], adcChannels [2 ], & V3 );
152
+ calculateVoltage (adcChannels [0 ], adcChannels [3 ], & V4 );
153
+ hydrophone0 [2 * i ] = V2 ;
154
+ hydrophone1 [2 * i ] = V3 ;
155
+ hydrophone2 [2 * i ] = V4 ;
156
+ }
157
+ frequency = get_frequency (hydrophone0 , 1024 , 4705882.3529 );
158
+ if (frequency != -1 ) {
159
+ printf ("frequency from hydrophone 1: %lu\r\n" , frequency );
150
160
}
151
- conversionComplete = 0 ;
152
- calculateVoltage (adcChannels [0 ], adcChannels [1 ], & V2 );
153
- calculateVoltage (adcChannels [0 ], adcChannels [2 ], & V3 );
154
- calculateVoltage (adcChannels [0 ], adcChannels [3 ], & V4 );
155
- printf ("CH2: %f, CH3: %f, CH4: %f\r\n" , V2 , V3 , V4 );
156
- HAL_Delay (100 );
161
+ //printf("frequency from hydrophone 2: %lu", get_frequency(hydrophone1, 1024, 4705882.35));
162
+ //printf("frequency from hydrophone 3: %lu", get_frequency(hydrophone2, 1024, 4705882.35));
157
163
158
164
/* USER CODE END WHILE */
159
165
@@ -430,10 +436,10 @@ static void MX_GPIO_Init(void)
430
436
}
431
437
432
438
/* USER CODE BEGIN 4 */
433
- void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef * htim ) {
434
- sec ++ ;
435
- printf ("%d microseconds\r\n" , sec );
436
- }
439
+ // void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
440
+ // sec++;
441
+ // printf("%d microseconds\r\n", sec);
442
+ // }
437
443
438
444
/*void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) {
439
445
}*/
0 commit comments