좋은 게시물. 지금은 FreeRTOS와 사용 방법에 대해 배우고 있으므로이 예제는 나를 위해 너무 복잡 할 수 있지만 여전히 유용합니다. FreeRTOS 기본 사항을 배우는 데 사용할 방법과 어떤 예가 필요한지 에 대해 어떻게 생각합니까? STM32F0 디스커버리 보드를 사용하고 있습니다. 감사! 나는 아마 솔직히 다른 곳에서 예를 복사. 이 구성 섹션으로 이동 하지 말아야 하는 이유가 보인다. 눈치 주셔서 감사합니다. 아마도 가장 좋은 방법은 아마 환초와 함께 제공되는 ADC 예제 중 하나를 찾는 것입니다. 나는 그것을 사용하지 않았기 때문에 정말로 말할 수 없다. 올바른 헤더 파일과 올바른 변수가 정의되어 있어야 합니다.

두 가지 예가 주어질 것입니다 : 나는 먼저 ADC 모듈의 기준 전압인 STM32F0 칩의 공급 전압을 측정하려고 합니다. 그런 다음 내장 온도 센서를 사용하여 칩의 온도를 판독하고 아날로그 입력 핀(PA1)에 적용되는 외부 아날로그 전압을 읽는 예제가 만들어집니다. ADC 변환 데이터 및 기타 내부 변수를 보려면 이 게시물에 소개된 STM Studio를 사용합니다. 이것은 잘 알려진 PIC, ABE 등과 함께 사용되는 Word별 ADC Word를 초기화하는 방법의 예입니다. 예를 들어 기존 ADC 예제로 시작하여 비교한 다음 붙여넣기하면 더 나은 기회가 될 수 있습니다. 나는 32stmvldiscovery에 예제를 컴파일하는 데 문제가 있습니다. ODR = 0000000000000000000이라는 용어에 대한 참조를 찾을 수 없을 때 나에게 오류를 제공합니다. ODR을 참조하는 줄을 제거하면 디버거에서 작동하는 것처럼 보입니다. 모드 매개 변수를 기록합니다. DMA_NORMAL로 설정하면 전송이 완료될 때마다 HAL_ADC_Start_DMA()를 호출하여 다른 DMA 전송을 시작해야 합니다. 충분히 빨리 하지 않으면 ADC 오버런 오류가 발생하고 일부 ADC 샘플이 손실됩니다. 이 예제에서는 DMA 컨트롤러가 버퍼를 채우는 작업이 완료되면 ADC에서 새 값을 받는 순간부터 다시 시작되도록 DMA_CIRCULAR로 설정합니다.

당신의 예를 들어, 그것은 내 프로젝트에 대한 빠른 데이터 수집 시스템을 개발하는 데 도움이 – ROV (www.openrov.com)에 대한 수중 음향 위치 시스템. 내 신호는 40KHz이며 신호를 처리하기 위해 100K SPS에서 샘플링하고 싶습니다. 다음에 는 GCC 도구를 사용하여 ADC 프로그래밍 예제를 볼 수 있습니다. 우리가 시도하고 싶은 몇 가지 흥미로운 모드가 있습니다. 2012년 7월에 주석을 다시 살펴보면 STM32F4 프로세서에 대한 예제를 찾아야 합니다. 주요 변경 사항은 일반적인 ADC 구성을 수행한 다음 사용 중인 ADC 변환기에 대해 특정 구성을 수행해야 한다는 것입니다. /***************************************************************************************************************************************************************************************************************************************************@brief 이 예제는 채널1을 통해 아날로그 신호를 디지털 신호로 연속변환하기 위해 ADC를 사용하는 방법을 설명합니다. ************************************************************************************************/************/호기심이 많은 SWV_puts()가 인쇄물과 매우 유사하다면 디버거를 사용하여 PC 화면에 텍스트를 인쇄합니다. 코드가 매우 이상하게 행동하고 있음을 추가하고 싶습니다.

예를 들어 “z_raw = readADC (3, ADC1, ADC_SampleTime_56Cycles);”를 두 번 호출하면 모든 것이 잘 작동하는 것처럼 보입니다. 또는 첫 번째 핀과 두 번째 핀을 읽는 사이에 1 초 지연을 두는 것도 문제를 해결하는 것처럼 보입니다. 나는 여기서 무슨 일이 일어나고 있는지 전혀 모른다. 나는이 프로그램을 사용할 수 있습니다,? 나는 iam 그것에서 정보를 받고 핀을 알고 어떻게 ? 난 정말 그것을 좋아하는 프로그램을 위해 당신을 생각, 그것의 간단하고 효능 안녕하세요, 당신은 변환의 끝을 사용하는 방법을 알고 계십니까 (EOC) 인터럽트? 나는 나의 마지막 변환의 가치가 어디에 있는지 알기 위해 이것을 필요로한다. 감사합니다 나는 이해합니다. 동일한 마이크로 컨트롤러에서 16 비트 reso를 원한다면 어떻게해야합니까? 이 작업을 수행하는 방법이 있을까요? TEMP110_CAL_ADDR을 통해 데이터시트를 형성할 수 있습니다: /* 단일 채널 변환에 대한 ——————————————————————*/ 연속 모드 설명: USART_InitStruct.USART_BaudRate=9600; USART_InitStruct.USART_워드길이=USART_WordLength_8b; USART_InitStruct.USART_StopBits=USART_StopBits_1; USART_InitStruct.USART_패리티=USART_패리티_아니오; USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_InitStruct.USART_하드웨어 플로우컨트롤 = USART_HardwareFlowControl_None; USART_Init(USART1, USART_InitStruct); USART_Cmd(USART1, 사용 가능); 동안 (*st != “) { 동안 (USART_GetFlagStatus (USART1, USART_FLAG_TXE)= RESET){} USART_SendData (USART1, *st++); } 위의 그림에 표시된 1사이클의 지속 시간은 ADC 모듈의 클럭 주파수에 따라 다릅니다.