Ярлыки

_GetPixelIndex (1) _SetPixelIndex (1) 3-phase (1) 800x480 (1) АЦП (1) генератор (1) синхронный усилитель (2) структура (1) учебный курс (1) шаговый двигатель (1) ШИМ (2) accert (1) AD7608 (1) AD8429 (1) ADC (5) amplifer (1) arccos (1) arcsin (1) arctang (2) arctg (3) ARM (2) arm_sqrt_q15 (2) assembler (6) ASSERT (1) atan (2) bit (1) Bitband (1) boot (3) bootlloader (1) BUTTON (1) C (5) C# (1) CAN (2) CC2530 (5) CMSIS (4) command (1) Cordic (1) Core746I (1) CubeMX (4) DBGMCU (2) debug (2) debug.ini (1) delegate (1) Digital Potentiometers (1) DigitalPOT (1) Discovery (1) DMA (9) DMA2D (1) DSP (1) DSP library (1) DWT (1) EFM32 (5) EmWin (9) EXTI (1) FATFS (1) FMC (2) FreeRTOS (2) gl868-dual cmux (1) GPIO (4) GUI (2) GUIBuilder (1) GUIDRV_CompactColor_16 (1) HAL (3) HappyGecko (1) Hard Fault (2) heap (1) I2C (1) ID (1) ILI9320 (1) ILI9325 (1) Initialisation (1) InitLTDC (1) Instrumentithion (1) Interrupt (4) ITR (1) JTAG (1) Keil (5) LCDConf (2) lock-in (1) LTCD (1) LTDC (3) main (1) memory (1) MINI_STM32 Revision 01 (1) nBoot0 (1) NVIC (1) OnePulse (2) OSAL (4) pack (1) phase (1) printf (3) Pulse (1) PWM (12) RCC (2) RCR (1) Register (1) RESET (2) RS232 (3) RSS (1) RTC (3) RTOS-RTX (1) RTT (1) RTX-RTOS (1) SDCard (1) SDRAM (6) Segger (2) SPI (3) sqrt (3) SSD1298 (1) SSD1963 (1) Standart Peripherial Library (3) STANDBAY (1) startup (1) STemWin (8) stepper motor (1) STlink (2) STM32 (17) STM32429ZI (1) STM32Cube (1) STM32DBG.IN (1) STM32F (28) STM32F0 (4) STM32F1 (13) STM32F4 (10) STM32F4 Discovery (1) STM32F407ZG (1) STM32F429 (2) STM32F746 (1) STOP (1) string (1) struct (1) SWD (1) SWD JTAG (1) Synhronization (1) system_stm32f4xx.c (1) SystemInit (1) SysTick (1) task (4) telit (1) TIM (27) typedef (1) UART (1) USART (9) viewer (2) WM_PAINT (1) Z-stack (5) ZigBee (5)

суббота, 26 декабря 2015 г.

CMSIS Initialisation

GPIO



#include "stm32f10x.h"
int main(void)
{
//       RCC->APB2ENR=0x00000014;
         RCC->APB2ENR|=RCC_APB2ENR_IOPAEN; // enable port A
         RCC->APB2ENR|=RCC_APB2ENR_IOPCEN; // enable port C
//       GPIOC->CRH=0x00000011;            //push/pull на С выводы 8, 9
         GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;
while(1)
  {
         if(!((GPIOA->IDR)&0x00000001))
           {
           GPIOC->ODR=0x00000100;          //восьмой - зеленый
           }
            else
                {
                 GPIOC->ODR=0x00000200;    // девятый синий
                 }
  }
}


Timer


#include "stm32f10x.h"
int r=0;// это флаг
                 void TIM2_IRQHandler (void)
               {
                TIM2->CR1=0x0000;               //  не enable(бит0)
//              TIM2->CR1 &=~TIM_CR1_CEN;
                TIM2->SR=TIM2->SR & 0xFFFE;     //В status reg обнуляем нулевой бит - UIF
//              TIM2->SR&=~TIM_SR_UIF;
                if (r==1) { r=2; GPIOC->ODR=0x00000100; //восьмой - зеленый
                           }
                   else { r=1; GPIOC->ODR=0x00000200;    /*девятый - синий*/
                        }
                TIM2->CNT=0x7530;               // от чего считаем
                TIM2->CR1=0x0001;               //  enable(бит0)
//              TIM2->CR1|=TIM_CR1_CEN;
                }
int main(void)
{
                __enable_irq();                 // общее включение прерывания
                NVIC_EnableIRQ(TIM2_IRQn);      //прерывание второго таймера - обработчик
                RCC->APB1ENR=0x00000001;        // таймер2 enable
//              RCC->APB1ENR|=RCC_APB1ENR_TIM2EN;
                RCC->APB2ENR=0x00000010;        // порт C enable
//              RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;
                GPIOC->CRH=0x00000011;          // 8--ой и 9-й оба на выход push/pull
//              GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;

                TIM2->CNT=0x7530;               // предв знач  счит с него до 65535
                TIM2->PSC=0x00E4;               //228 предделитель
                TIM2->DIER=0x0001;              //прер по переполнен UIE
//              TIM2->DIER|=TIM_DIER_UIE;
                TIM2->CR1=0x0001;               // запуск таймера
//              TIM2->CR1|=TIM_CR1_CEN;
int i;
  while (1)
  {
        i++;

  }
}


#include "stm32f10x.h"
int r=0;// - флаг
                   void TIM2_IRQHandler (void)
                {
                TIM2->CR1=TIM2 ->CR1 & 0xFFFE;//таймер не enable(бит0)
//              TIM2->CR1 &=~TIM_CR1_CEN;
                TIM2->SR=TIM2->SR & 0xFFFD;   //В status reg обнуляем второй  бит - 1 - OCR1
//              TIM2->SR&=~TIM_SR_CC1IF;
                if (r==1) { r=2; GPIOC->ODR=0x00000100; //восьмой - зеленый
                          }
                   else { r=1; GPIOC->ODR=0x00000200; /*девятый - синий*/
                         }
                TIM2->CR1=TIM2->CR1 | 0x0001; //таймер enable(бит0)
//              TIM2->CR1|=TIM_CR1_CEN;
                }
int main(void)
{
                __enable_irq();                 // общее включение прерывания
                NVIC_EnableIRQ(TIM2_IRQn);



                RCC->APB1ENR=0x00000001;        // таймер2 enable
//              RCC->APB1ENR|=RCC_APB1ENR_TIM2EN;
                RCC->APB2ENR=0x00000010;        // порт C enable
//              RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;
                GPIOC->CRH=0x00000011;          // 8--ой и 9-й оба на выход push/pull
//              GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;

                TIM2->PSC=0x00E4;               //228 предделитель
                TIM2->DIER=0x0002;              //прер по сравн первый канал бит - CC1IE
//              TIM2->DIER |= TIM_DIER_CC1IE;
                TIM2->CCR1=0x7000;              //уровень сравнения - когда возн прер по сравн
                TIM2->ARR= 0x7530;              //auto reload reg -  до чего считаем ( вершина )
                TIM2->CR1=0x00E1;               // таймер  enable(бит0) напр счета  от 0 (бит4 DIR если 1 к 0)0, 
                                                //ARPE бит enable граница до кот счет бит 7 в 1 -( т е 8)
                                                // 6-5-биты CMS-center align mode-туда-сюда -(11)
//              TIM2->CR1|=TIM_CR1_CMS;
//              TIM2->CR1|=TIM_CR1_ARPE;
//              TIM2->CR1|=TIM_CR1_CEN;
int i = 0;

  while (1)
  {
        i++;

  }
}


Timer PWM

#include "stm32f10x.h"
int s=0;// - флаг
                   void TIM2_IRQHandler (void)
                {
                TIM2->CR1=TIM2 ->CR1 & 0xFFFE;  //таймер не enable(бит0)
//              TIM2->CR1 &=~TIM_CR1_CEN;
                TIM2->SR=TIM2->SR & 0xFFFD;     //В status reg обнуляем второй  бит - 1 - OCR1
//              TIM2->SR&=~TIM_SR_CC1IF;
                if (s==1) { s=2; GPIOC->ODR=0x00000000;
                           }
                     else { s=1; GPIOC->ODR=0x00000300;   // плавно мерцают оба
                                }
                if  ((TIM2->CCR1) < 0x8400 ) {(TIM2->CCR1)=(TIM2->CCR1) + 0x007F;}
                     else {(TIM2->CCR1) = 0x007F ;}
                if  ((TIM2->CR1) & 0x0010 ) {(TIM2->CNT)=(TIM2->CNT) + 0x007F ;}// коррекция значения 
                                                          //счетчика чтобы не перескакивать сравнение
                     else {(TIM2->CNT) = (TIM2->CNT)+ 0x007F ;}
                TIM2->CR1=TIM2->CR1 | 0x0001;             //таймер enable(бит0)
//              TIM2->CR1|=TIM_CR1_CEN;

                }
int main(void)
{
                __enable_irq();                 // общее включение прерывания
                NVIC_EnableIRQ(TIM2_IRQn);

                RCC->APB1ENR=0x00000001;        // таймер2 enable
//              RCC->APB1ENR|=RCC_APB1ENR_TIM2EN;
                RCC->APB2ENR=0x00000010;        // порт C enable
//              RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;
                GPIOC->CRH=0x00000011;          // 8--ой и 9-й оба на выход push/pull
//              GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;

                TIM2->PSC=0x0001;               // предделитель
                TIM2->DIER=0x0002;              //прер по сравн первый канал бит - CC1IE
//              TIM2->DIER |= TIM_DIER_CC1IE;
                TIM2->CCR1=0x4000;              //уровень сравнения - когда возн прер по сравн
                TIM2->ARR= 0x8550;              //auto reload reg -  до чего считаем ( вершина )
                TIM2->CR1=0x00E1;               // таймер  enable(бит0) напр счета  от 0 (бит4 DIR если 1 к 0)0, 
                                                //ARPE бит enable граница до кот счет бит 7 в 1 -( т е 8)
                                                // 6-5-биты CMS-center align mode-туда-сюда -(11)
//              TIM2->CR1|=TIM_CR1_CMS;
//              TIM2->CR1|=TIM_CR1_ARPE;
//              TIM2->CR1|=TIM_CR1_CEN;
int i = 0;

  while (1)
  {
        i++;

  }
}


Timer synhro master/slave


#include "stm32f10x.h"
int r=0;
int s=0;

                     void TIM1_UP_TIM16_IRQHandler (void)
                   {
                   TIM1->CR1=TIM1 ->CR1 & 0xFFFE;       // не enable(бит0)
//                 TIM1->CR1 &=~TIM_CR1_CEN;
                   TIM1->SR=TIM1->SR & 0xFFFE;          //В status reg обнуляем   бит - 0 - UIF
//                 TIM1->SR&=~TIM_SR_UIF;
                   if (s==1) { s=2; GPIOC->ODR=GPIOC->ODR & 0xFFFFFDFF;
                             }

                       else { s=1; GPIOC->ODR=GPIOC->ODR | 0x00000200;
                            }
                    TIM1->CR1=TIM1->CR1 | 0x0001;       //enable(бит0)
//                  TIM1->CR1 |= TIM_CR1_CEN;
                   }
                     void TIM2_IRQHandler (void)
                   {
                    TIM2->CR1=TIM2 ->CR1 & 0xFFFE;      // не enable(бит0)
//                  TIM2->CR1 &=~TIM_CR1_CEN;
                    TIM2->SR=TIM2->SR & 0xFFFE;         //В status reg обнуляем второй  бит - 0 - UIF
//                  TIM2->SR &=~ TIM_SR_UIF;
                    if (r==1) { r=2; GPIOC->ODR=GPIOC->ODR & 0xFFFFFEFF;
                               }
                        else { r=1; GPIOC->ODR=GPIOC->ODR | 0x00000100;
                             }
                    TIM2->CR1=TIM2->CR1 | 0x0001;       //enable(бит0)
//                  TIM2->CR1 |= TIM_CR1_CEN;
                   }
int main(void)
{
                __enable_irq();                         // тотальное включение прерывания
                NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn );
                NVIC_EnableIRQ(TIM2_IRQn);

                RCC->APB1ENR=0x00000001;                // таймер2 enable
//              RCC->APB1ENR|=RCC_APB1ENR_TIM2EN;
                RCC->APB2ENR=0x00000810;                // таймер 1 enable , порт C enable
//              RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;
//              RCC->APB2ENR|=RCC_APB2ENR_TIM1EN;
                GPIOC->CRH=0x00000011;                  // 8--ой и 9-й оба на выход push/pull
//              GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;
                // TIMER_2
//master
                TIM2->CR2=0x0020;                       // master timer update mode mms - 010;
//              TIM2->CR2|=TIM_CR2_MMS_1;
//
                TIM2->PSC=0x0FFF;                       // предделитель
                TIM2->DIER=0x0001;                      //прер по переполн
//              TIM2->DIER |= TIM_DIER_UIE;
                TIM2->ARR= 0x01E8;                      // -  до чего считаем ( вершина )

                // TIMER_1
//slave
                TIM1->SMCR=0x0017;                      //external clock mode sms - 111, 
                                                        //TS для таймера 1 по таблице синхр от таймера 2 - 001
//              TIM1->SMCR|=TIM_SMCR_SMS;
//              TIM1->SMCR|=TIM_SMCR_TS_0;
//
                TIM1->PSC=0x0001;                       //предделитель
                TIM1->DIER=0x0001;                      //прер по переполн
//              TIM1->DIER |= TIM_DIER_UIE;
                TIM1->ARR= 0x0008;                      // -  до чего считаем ( вершина )
// запуск

                TIM1->CR1=0x0081;                       // тайм1 enable(бит0), ARPE бит enable 
                                                        //граница до кот счет бит 7 в 1 -( т е 8)
//              TIM1->CR1|=TIM_CR1_ARPE;
//              TIM1->CR1|=TIM_CR1_CEN;
                TIM2->CR1=0x0081;                       // тайм2 enable(бит0) , ARPE бит enable      
                                                        //граница до кот счет бит 7 в 1 -( т е 8)
//              TIM2->CR1|=TIM_CR1_ARPE;
//              TIM2->CR1|=TIM_CR1_CEN;
int i = 0;

  while (1)
  {
        i++;

  }
}


Timer DMA


#include "stm32f10x.h"
long int s=0x00000200;
long int r=0x00000100;
//               void TIM1_CC_IRQHandler (void)
//             {
//
//             TIM1->CR1=TIM1 ->CR1 & 0xFFFE;                   // счет не enable(бит0)
//             if (TIM1->SR & TIM_SR_CC1IF){(TIM1->SR)=(TIM1->SR) &(~TIM_SR_CC1IF);GPIOC->ODR=s;}
//                 else{TIM1->SR=(TIM1->SR) &(~TIM_SR_CC4IF);GPIOC->ODR=r;}
//             TIM1->CR1=TIM1->CR1 | 0x0001;                    // счет enable(бит0)
//              }
int main(void)
{
//              __enable_irq();                 // общее включение прерывания
//              NVIC_EnableIRQ(TIM1_CC_IRQn );
                RCC->APB2ENR=0x00000810;        //порт C enable tacting -1 , 8 - таймер 1 enable tacting 
                                                //!!! тактирование до конфигурирования !!!
//              GPIOC->CRH=0x00000011;          // 8--ой и 9-й оба на выход push/pull
                GPIOC->CRH = GPIO_CRH_MODE8_0 | GPIO_CRH_MODE9_0;


                TIM1->PSC=0x00E4;               // предделитель
//              TIM1->DIER=0x1200;              //запрос 4,1  каналов DMA биты - CC4DE и CC2DE,
                                                //а так  без дма 0x0012 - CC1IE и CC4IE
                TIM1->DIER |= TIM_DIER_CC1DE;
                TIM1->DIER |= TIM_DIER_CC4DE;
//              TIM1->DIER |= TIM_DIER_CC1IE;
//              TIM1->DIER |= TIM_DIER_CC4IE;


                TIM1->CCR1=0x5000;                      //уровень сравнения - когда возн прер по сравн
                TIM1->CCR4=0x0500;                      //уровень сравнения - когда возн прер по сравн
                TIM1->ARR= 0x7530;                      //auto reload reg -  до чего считаем ( вершина )
//              TIM1->CR1=0x00C1;                       // прер enable(бит0)ж напр счета  от 0 (бит4 DIR если 1 к 0)0,
                                                        //ARPE бит enable граница до кот счет бит 7 в 1 -( т е 8)
                                                        // 6-5-биты CMS-center align mode-туда-сюда -(11)
                TIM1->CR1 |= TIM_CR1_ARPE;
                TIM1->CR1 |= TIM_CR1_CMS_1;
                TIM1->CR1 |= TIM_CR1_CEN;

                // DMA
                RCC->AHBENR |=RCC_AHBENR_DMA1EN;                //DMA 1 enable
                DMA1_Channel2->CPAR =(uint32_t)&GPIOC->ODR;     // адрес порта выхода
                DMA1_Channel2->CMAR=(uint32_t)&r;               //адрес переменной
                DMA1_Channel2->CNDTR=0x00000001;                //количество пересылок данных
                DMA1_Channel2->CCR |=DMA_CCR2_DIR;              //направление пересылки из памяти по ум  с периферии
                DMA1_Channel2->CCR |= DMA_CCR2_CIRC;            //непрерывно
                DMA1_Channel2->CCR |= DMA_CCR2_MSIZE_1;         // 32 bit
                DMA1_Channel2->CCR |= DMA_CCR2_PSIZE_1;         // 32 bit
                DMA1_Channel4->CPAR =(uint32_t)&GPIOC->ODR;
                DMA1_Channel4->CMAR=(uint32_t)&s;
                DMA1_Channel4->CNDTR=0x00000001;
                DMA1_Channel4->CCR |=DMA_CCR4_DIR;
                DMA1_Channel4->CCR |= DMA_CCR4_CIRC;
                DMA1_Channel4->CCR |= DMA_CCR4_MSIZE_1;
                DMA1_Channel4->CCR |= DMA_CCR4_PSIZE_1;
                DMA1_Channel2->CCR |= DMA_CCR2_EN;              //вкл
                DMA1_Channel4->CCR |= DMA_CCR4_EN;              //вкл
//              DMA1_Channel2->CCR = 0x00000A31;
//              DMA1_Channel4->CCR = 0x00000A31;
int i = 0;

  while (1)
  {
        i++;

  }
}


Timer & UART


#include "stm32f10x.h"
int s=0;
int r=0;

                   void TIM1_UP_TIM16_IRQHandler (void)
                {
                TIM1->CR1 &=~TIM_CR1_CEN;               // не enable(бит0)
                TIM1->SR&=~TIM_SR_UIF;                  //В status reg обнуляем   бит - 0 - UIF
                if (s==1) { s=2; USART1->DR=211;
                           }
                    else { s=1; USART1->DR=110;
                         }

                TIM1->CR1|=TIM_CR1_CEN;                 //enable(бит0)
                }
                   void USART3_IRQHandler (void)
                {
                if (USART3->DR==211) { GPIOC->ODR=GPIOC->ODR & ~0x00000200;
                                     }
                    else {GPIOC->ODR=GPIOC->ODR | 0x00000200;
                          }
                 }
                   void USART1_IRQHandler (void)
                {
                USART1->SR=USART1->SR & ~USART_SR_TC;
                if (r==1) { r=2; GPIOC->ODR=GPIOC->ODR & ~0x00000100;
                           }
                     else { r=1; GPIOC->ODR=GPIOC->ODR|0x00000100;
                          }
                 }
int main(void)
{
                __enable_irq();                   // общее включение прерывания
                NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn );
                NVIC_EnableIRQ(USART1_IRQn);
                NVIC_EnableIRQ(USART3_IRQn);
//порт C enable tacting  ,таймер 1 enable tacting  USART1, ports B,A 
// и AFIOEN тактирование до конфигурирования !!!
                RCC->APB2ENR |=RCC_APB2ENR_USART1EN;
                RCC->APB2ENR |=RCC_APB2ENR_TIM1EN;
                RCC->APB2ENR |=RCC_APB2ENR_IOPCEN;
                RCC->APB2ENR |=RCC_APB2ENR_IOPBEN;
//              RCC->APB2ENR |=RCC_APB2ENR_IOPAEN;//при alternate  не нужен
//alternate
                RCC->APB2ENR |=RCC_APB2ENR_AFIOEN;//выкл
                AFIO->MAPR      |=AFIO_MAPR_USART3_REMAP_PARTIALREMAP;
                AFIO->MAPR      |=AFIO_MAPR_USART1_REMAP;
// USART 3 enable tacting, tim-2
                RCC->APB1ENR |=RCC_APB1ENR_USART3EN;
                RCC->APB1ENR |=RCC_APB1ENR_TIM2EN;
                GPIOC->CRH=0x0000EB11;            //C - leds  8--ой и 9-й оба на выход push/pull 10,11 Tx,Rx
//              GPIOA->CRH=0x00000EB0;            //alternate Tx-9 pin Rx-10 //при alternate  не нужен
                GPIOB->CRL=0xEB000000;            //alternate Tx-6 pin Rx-7
                USART1->BRR=(4<<4)+0x5;           //115.2kB/s
                USART3->BRR=(4<<4)+0x5;           //115.2kB/s
                USART1->CR1|=USART_CR1_UE;        //вкл
                USART1->CR1|=USART_CR1_TCIE;      //прер по передаче
                USART1->CR1|=USART_CR1_TE;        //разр передачи
                USART3->CR1|=USART_CR1_UE;        //вкл
                USART3->CR1|=USART_CR1_RXNEIE;    //прерывание по приему
                USART3->CR1|=USART_CR1_RE;        //разрешить прием
// TIMER_1

                TIM1->PSC=0x0FFF;               //делитель
                TIM1->DIER |= TIM_DIER_UIE;     //прер по переп
                TIM1->ARR= 0x01E8;              // auto reload reg -  до чего считаем ( вершина )
                TIM1->CR1|=TIM_CR1_ARPE;
                TIM1->CR1|=TIM_CR1_CEN;         //  enable(бит0), ARPE бит enable граница до кот счет бит 7
// enable

int i = 0;

  while (1)
  {
        i++;

  }
}


Timer & ADC



#include "stm32f10x.h"
long int s=0x00000200;
long int r=0x00000100;
int t=0;
                 void ADC1_IRQHandler (void)
               {
               ADC1->SR &= ~ADC_SR_AWD;
               if (t==1) { t=2; GPIOC->ODR=0x00000100;  //восьмой - зеленый
                         }
                   else { t=1; GPIOC->ODR=0x00000200; /*девятый - синий*/
                        }
                ADC1->LTR=(ADC1->DR) - 0x00000005;      //коррекция границы собаки
                }


int main(void)
{
                __enable_irq();
                NVIC_EnableIRQ(ADC1_IRQn);
                RCC->APB2ENR |=RCC_APB2ENR_IOPCEN;              //порт C enable ,ADC - enable.
                RCC->APB2ENR |=RCC_APB2ENR_ADC1EN;
                GPIOC->CRH=0x00000011;                          // 8--ой и 9-й оба на выход push/pull
//              GPIOC->CRH = GPIO_CRH_MODE8_0|GPIO_CRH_MODE9_0;
                //ADC
                ADC1->CR2 |=ADC_CR2_ADON;                       //ADON оказывается надо включать 2 раза
                ADC1->CR2 |= ADC_CR2_TSVREFE;                   //термодатчик и опорное напр вкл
                ADC1->SQR3 = ADC_SQR3_SQ1_4;                    //16-й канал идет первым в последовательности
                                                                //регулярных(и единственным)
                ADC1->SMPR1 |= ADC_SMPR1_SMP16;                 // время преобразования max
                ADC1->CR2 |=ADC_CR2_CAL;                        //калибровка
                ADC1->CR2 |=ADC_CR2_CONT;                       //непрерывное преобразование
                ADC1->CR1 |=ADC_CR1_AWDEN;                      //аналоговая собака на регулярных каналах
                ADC1->CR1 |=ADC_CR1_AWDIE;                      //прерывание от собаки
                ADC1->CR1 |=ADC_CR1_AWDCH_4;                    //собака на 16 канале
                ADC1->CR2 |=ADC_CR2_ADON;                       //включили АЦП
                ADC1->LTR=(ADC1->DR) - 0x00000005;              //в нижнюю границу собаки текущее значение 
                                                                //температуры с коррекцией
                                                                //чтобы прерывание сразу не наступило

int i = 0;

  while (1)
  {
        i++;

  }
}







Комментариев нет:

Отправить комментарий