회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
95 중고장터 HOTDEMO9RS08KASP FREESCALE EVALUATE BOARD 아크마 6265 2011.05.22
94 중고장터 HOT산켄 SLA7044M 및 PG001M 구합니다 밝은전기구슬 5029 2011.03.21
93 중고장터 HOT이노룩스 10.2인치 lcd 팝니다...1 스포츠광 6644 2011.03.18
92 중고장터 HOTATMEGA128 2개 팝니다 btnim 6879 2011.03.17
91 중고장터 HOTAT89S8253 24JC 수량24개 있습니다. 필요하신분께 드립니다1 초록 5099 2011.03.10
90 중고장터 HOTSTM32F103ZET 판매 아크마 5247 2011.02.27
89 중고장터 HOT8086 / 8088 어셈블러 관련 책 구해요 상혁짱 5760 2011.01.22
88 중고장터 HOT빵판 구해봅니다.6 상혁짱 4327 2011.01.22
87 중고장터 HOTencoder knob 구하고 있습니다.1 blackpearl 5726 2011.01.20
86 중고장터 HOTAVR, DSP 테스트 보드 제팔 6631 2011.01.18
85 중고장터 HOTKUT-128 KIT와 교재 비닐도 뜯지 않은 새 것입니다.1 짬짜미 6837 2010.12.31
84 중고장터 HOTAVR 테스트키트와 책을 같이 구매하고 싶습니다 orcad 4197 2010.12.02
83 중고장터 HOTavr 카운터 시계 파실분없나여?4 땡가드 4535 2010.11.27
82 중고장터 HOTavr128 교육용키트 싸게파시는분있으신가여?5 seohwan16 3907 2010.11.21
81 중고장터 HOT[서적] [마이크로칩 마이크로컨트롤러 응용] 모터콘트롤, 마이크로 컨트롤러 이해와 응용(마이크로칩 16비트) 삽니다.. 꾼뭉 4870 2010.11.18
80 중고장터 HOTPROVSM 6 정품 시디 구해 봅니다.1 열이 4663 2010.11.10
79 중고장터 HOT3d tv 구동칩 구합니다 Optimist_영 3835 2010.11.10
78 중고장터 HOT불루투스 송수신 모줄 저렴하게 구해봅니다 .1 산수유 3404 2010.11.02
77 중고장터 HOTICD-U40 팝니다. bluewing 4456 2010.10.06
76 중고장터 HOT마이크로 로봇 ATMEGA128 트레이닝킷 판매합니다.6 bluewing 5065 2010.10.06
  • 경험은 사상의 아들이고 사상은 행동의 아들이다. 책에서 인간을 배울 수는 없다.
    - 디즈레일리
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.