회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
86 펌웨어 & 코딩언어 HOT수치해석 by Matlab or C++ ?2 hoony184 2178 2011.03.02
85 펌웨어 & 코딩언어 HOT모델심 에대한 질문입니다.. 라인걸어서 1982 2011.02.17
84 펌웨어 & 코딩언어 HOTmatlab에 관하여..질문하겠습니다..2 깐돌이01 1799 2011.01.31
83 펌웨어 & 코딩언어 HOTC언어 : GCC에 대하여2 다시 1712 2011.01.14
82 펌웨어 & 코딩언어 HOTinline assembler 삽입 제한 피해가는 법 요청 쿨맨 1641 2011.01.01
81 펌웨어 & 코딩언어 HOTscanf 입력에 대해 질문이요~4 띵킹~ 1995 2010.12.21
80 펌웨어 & 코딩언어 HOTC 언어 기초중 다음 사항에 대하여 질문이여.2 hihihohaha 1633 2010.12.15
79 펌웨어 & 코딩언어 HOTrs232 통신프로그램.. 예딩 2360 2010.12.06
78 펌웨어 & 코딩언어 HOTc언어 능력자님을 찾아요 ㅠ 도와주세요12 진쓰 2305 2010.11.26
77 펌웨어 & 코딩언어 HOT초보에게 좋은 C언어 책 추천 부탁드립니다.7 등나무 2499 2010.11.11
76 펌웨어 & 코딩언어 HOT아스키코드질문2 k231 1219 2010.11.03
75 펌웨어 & 코딩언어 HOT펌웨어란6 k231 2261 2010.11.03
74 펌웨어 & 코딩언어 HOTc언어 초보입니다 조언좀..2 hshyo 1021 2010.10.28
73 펌웨어 & 코딩언어 HOTGPS 데이터를 받아서 지도로 맵핑을 하고자 합니다. 더그라스 1082 2010.10.13
72 펌웨어 & 코딩언어 HOT간단한 어셈블리어 분석 좀 도와 주세요~ ^^; 케루시아 1159 2010.09.08
71 펌웨어 & 코딩언어 HOT학부생인데요 가장 자신있는 프로그램이 어떤거 있으신가요? c언어인분도 계세요?4 온니무 876 2010.08.25
70 펌웨어 & 코딩언어 HOTC/C++로 영상처리를 하고 싶습니다.5 Glory 2981 2010.08.22
69 펌웨어 & 코딩언어 HOTC 언어2 연희야 1098 2010.08.10
68 펌웨어 & 코딩언어 HOT프리스케일 mcu 쓰시는 분은 없나요?1 스즈루 959 2010.06.28
67 펌웨어 & 코딩언어 HOTc언어 관련3 수환 856 2010.06.25
  • 지식인은 지금까지 일어났던 일을 안다. 천재는 앞으로 일어날 일을 안다.
    - 치아다
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.