PDA

Επιστροφή στο Forum : STM32 και ADC με HAL Api



xmaze
11-12-16, 20:29
Γειά σας,

έχει καταφέρει κανείς να διαβάσει αναλογικές τάσεις με Stm32 για διαφορετικα κανάλια, όσο και να προσπαθώ δεν μπορω να το κάνω να δουλέψει. Έχει κανείς εμπειρία πάνω στο θέμα;

SProg
11-12-16, 20:48
Με HAL οχι, με SPL πολλες φορες.

Τι εννοεις διαφορετικα καναλια;Ανεβασε τον κωδικα.

xmaze
11-12-16, 21:33
καναλια εννοώ, τα πινς που ειναι συνδεμενα με το ADC, να εχω δύο τασεις σε πίν και να μετράω μία την μία μία την άλλη. Το SPL τί είναι;

kioan
11-12-16, 21:46
SPL = Standard Peripheral Library, είναι οι βιβλιοθήκες που προϋπήρχαν του HAL.
Ο κώδικας που γράφεις με SPL είναι πιο στενά εξαρτώμενος από το συγκεκριμένο hardware (πράγμα που δεν είναι απαραιτήτως κακό) με αποτέλεσμα να μην είναι το ίδιο εύκολα μεταφέρσιμος όπως με το HAL.

SProg
11-12-16, 21:54
Ανεβασε τον κωδικα.

xmaze
11-12-16, 23:42
Ανεβασε τον κωδικα.

νομίζω τα καταφερα, θελει αυριο να το ξανα τεσταρω, εκανα τις εξής ρυθμίσεις:
η 5 και η 4 γραμμή ήταν το πρόβλημα.



g_AdcHandle.Instance = ADC1;
g_AdcHandle.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV2 ;
g_AdcHandle.Init.Resolution = ADC_RESOLUTION_12B;
g_AdcHandle.Init.ScanConvMode = ENABLE ;
g_AdcHandle.Init.ContinuousConvMode = ENABLE;
g_AdcHandle.Init.DiscontinuousConvMode = DISABLE;
g_AdcHandle.Init.NbrOfDiscConversion = 0;
g_AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
g_AdcHandle.Init.ExternalTrigConv = ADC_SOFTWARE_START;
g_AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
g_AdcHandle.Init.NbrOfConversion = 2;
g_AdcHandle.Init.DMAContinuousRequests = DISABLE;
g_AdcHandle.Init.EOCSelection = ENABLE;