회원가입 ID/PW 찾기
AA

안녕 하세요.

제가 STM32 칩으로 ADC 입력을 받아서 시리얼로 데이터를 보내고 싶은데 동작을 안 하네요,

고수님들 조언 좀 해 주세요.

 

초기 함수

/*------------------------------------------------------------------------------
  ADC_Init
 *------------------------------------------------------------------------------*/
void ADC_HardInit(void)
{
 // Clock signal for ADC1 unit have to be enables
 RCC->APB2ENR |= 0x0100;            // Port1 ADC1
 // Configure PA1 (ADC Channel 10) as analog input
 GPIOA->CRL &= 0xFFFFF00F;            
 // ADC1 Congiguration
 ADC1->CR1 &= 0xFFF0FFFF;           // Independent mode
 ADC1->CR1 &= 0xFFFFFEFF;           // Scan conversion mode disable
 ADC1->CR2 &= 0xFFFFFFFD;           // Continuous conversion mode disable
 ADC1->CR2 &= 0xFFEFFFFF;           // External triger conversion disable
 ADC1->CR2 &= 0xFFFFF7FF;           // Data alignment right
 ADC1->SQR1 &= 0xFF0FFFFF;           // # of channel = 1
 // ADC1 regular channel 14 configuration
 ADC1->SMPR1 |= 0x38000000;          // Sample time 239,5 cycles
 ADC1->SQR3 &= 0xFFFFFFE0;           // mask ans set 9th chanel as first
 ADC1->SQR3 |= 0x00000009;
 // Enable ADC1
 ADC1->CR2 |= 0x00000001;
 // Enable ADC1 reset calibaration register
 ADC1->CR2 |= 0x00000008;
 // Check the and of ADC1 reset calibration register
 while(ADC1->CR2 & 0x00000008);
 // Start ADC1 calibaration
 ADC1->CR2 |= 0x0000004;
 // Check the and of ADC1 calibration
 while(ADC1->CR2 & 0x00000004);
}

 

메인 함수

int main()

{

  unsigned char data; 

whlie(1)

  {

   ADC1->CR2 |= 0x00000001;              // Start ADC1
   while(!(ADC1->SR & 0x0002));           // wait until conversion is done
   data = ADC1->DR;                   // read result
   printf ("Mode 1 - Memory Save Only = '%x'", data);
   putchar('\n');
   putchar('\r');
   delay(1000000);

  }
}

 

문제는 메인 함수에 whlie 문을 넣으면 통신을 안하는 먹통이 되어 버리네요.

제가 할려고 하는것은

STM32F103R8T6 칩에 ADC0번 핀(PA0)의 값을 읽어서 그 값을 시리얼로 PC로 보내는 겁니다.

 

많은 조언 부탁 드립니다.

댓글 1
  • No Profile

    메인함수에 몬가 없군요...

    void ADC_HardInit(void).... 선언만 되 있고 실행은 안되게 되 있네요..

     // Start ADC1
    부분쯤에 스타트하기 위해서는 ..

    ADC1->CR2 |= 0x00000001;  같은 경우는 초기화에 넣어야 할 거 같은데요..

    ADC를 켜겠다는 의미 입니다..

     

    스타트는..

    ADC1->CR2 |=1 << 22;  입니다..

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
3784 Analog & Mixed-Signal 설계 HOTLNA 설계 놀부 1924 2010.12.28
3783 Allegro & OrCAD HOTVMWARE로 XP설치하고 그 위에 16.3설치 가능한가요?2 뒹굴곰 1809 2010.12.28
3782 Analog & Mixed-Signal 설계 HOT라인트레이서 회로도 입니다.3 Gentlewolf 4269 2010.12.28
3781 Allegro & OrCAD HOTpads에서 작업한 도면을 orcad로 변환하는 방법3 놀부 2591 2010.12.28
3780 자유주제 HOT아이는 쑥쑥 자라는 중... ㅎㅎㅎ6 내공수련중 6412 2010.12.28
3779 마이크로프로세서 HOTCC2430 만능기판에 꾸며 다운로드 하기 로미옹 1460 2010.12.28
3778 Allegro & OrCAD HOTorcad 16.3 과 orcad 16.0 둘 중 어느것이 좋은가요.2 현지현정 2476 2010.12.28
3777 Analog & Mixed-Signal 설계 HOT수정발진기에 대해서 개념좀 잡아주세요..;;워낙 초보라서..1 행복한인생 1350 2010.12.28
3776 자유주제 HOT유용한 사이트 ㅎ4 LiGong 6811 2010.12.27
3775 자유주제 HOT납 당첨 ??5 hoon360 5863 2010.12.27
3774 드론/로봇/라인트레이서 HOT라이트레이서 모터부 회로도 에서 질문점 드릴게요..!3 라인걸어서 2299 2010.12.27
3773 자유주제 HOT이제 100납이네요. ^^16 베스트업 7009 2010.12.27
3772 자유주제 HOT사이트 좋네요. ㅋ1 베스트업 6438 2010.12.27
3771 Allegro & OrCAD HOTORCAD 관련 오프라인 강좌에 대해 아시는분?1 베스트업 1286 2010.12.27
3770 마이크로프로세서 HOTRS232 를 이용한 ATmega128통신7 데닉시 2652 2010.12.27
마이크로프로세서 HOTSTM32F103R8T6 ADC 입력1 컴맹9506 3599 2010.12.27
3768 자유주제 HOTorcad와 pads logic중에4 당첨 5828 2010.12.25
3767 자유주제 HOT다운은 등급 얼만큼 올려야 가능한지요?8 moyah 6754 2010.12.25
3766 자유주제 HOT개발자25 moyah 2805 2010.12.25
3765 Analog & Mixed-Signal 설계 HOT전자 입문생...3 Elec_han 1019 2010.12.24
  • 가장 행복한 삶을 살기 위해서 낮시간은 엄격하게 계획되어야 하고 밤시간은 한가하게 비워놓아야 한다.
    - 무니
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.