Enable the temperature sensor channel for F2/F4 devices.

This commit is contained in:
px4dev 2012-12-31 18:31:37 -08:00
parent bc432b1feb
commit b167912b1b
1 changed files with 13 additions and 0 deletions

View File

@ -91,6 +91,10 @@
#define rJDR4 REG(STM32_ADC_JDR4_OFFSET) #define rJDR4 REG(STM32_ADC_JDR4_OFFSET)
#define rDR REG(STM32_ADC_DR_OFFSET) #define rDR REG(STM32_ADC_DR_OFFSET)
#ifdef STM32_ADC_CCR
# define rCCR REG(STM32_ADC_CCR_OFFSET)
#endif
class ADC : public device::CDev class ADC : public device::CDev
{ {
public: public:
@ -140,6 +144,9 @@ ADC::ADC(uint32_t channels) :
{ {
_debug_enabled = true; _debug_enabled = true;
/* always enable the temperature sensor */
channels |= 1 << 16;
/* allocate the sample array */ /* allocate the sample array */
for (unsigned i = 0; i < 32; i++) { for (unsigned i = 0; i < 32; i++) {
if (channels & (1 << i)) { if (channels & (1 << i)) {
@ -188,10 +195,16 @@ ADC::init()
/* enable the temperature sensor / Vrefint channel if supported*/ /* enable the temperature sensor / Vrefint channel if supported*/
rCR2 = rCR2 =
#ifdef ADC_CR2_TSVREFE #ifdef ADC_CR2_TSVREFE
/* enable the temperature sensor in CR2 */
ADC_CR2_TSVREFE | ADC_CR2_TSVREFE |
#endif #endif
0; 0;
#ifdef ADC_CCR_TSVREFE
/* enable temperature sensor in CCR */
rCCR = ADC_CCR_TSVREFE;
#endif
/* configure for a single-channel sequence */ /* configure for a single-channel sequence */
rSQR1 = 0; rSQR1 = 0;
rSQR2 = 0; rSQR2 = 0;