Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

analogdaten_in_c_erfassen [2014/10/02 13:08]
huwaldt
analogdaten_in_c_erfassen [2019/02/04 14:10]
Zeile 1: Zeile 1:
-====== Analogdaten erfassen ====== 
-... 
- 
->><code cpp> 
-//---------------------------------------------------------------------- 
-// Titel     : ADC-UART Beispiel für den STM32F407  
-//---------------------------------------------------------------------- 
-// Funktion  : sendet einen Analogwert an den PC 
-// Schaltung : UART RxD an PD8 
-//---------------------------------------------------------------------- 
-// Hardware  : STM32F4 Discovery 
-// MCU       : STM32F407VGT6 
-// Takt      : 168 MHz 
-// Sprache   : ARM C 
-// Datum     : 21.01.2013 
-// Version   : 1 
-// Autor     : Alexander Huwaldt 
-//---------------------------------------------------------------------- 
-#include <stddef.h> 
-#include <stdlib.h> 
-#include "hardware.h" 
-  
-void initApplication() 
-{ 
- SysTick_Config(SystemCoreClock/100); 
-  
- // UART3 RxT an PortD8 9600,8,n,1 
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE); 
- GPIO_InitTypeDef  GPIO_InitStructure; 
- GPIO_StructInit (&GPIO_InitStructure); 
- GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8; 
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; 
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 
- GPIO_Init(GPIOD, &GPIO_InitStructure); 
- GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_USART3); 
-  
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); 
- USART_InitTypeDef USART_InitStructure; 
- USART_InitStructure.USART_BaudRate = 9600; 
- USART_InitStructure.USART_WordLength = USART_WordLength_8b; 
- USART_InitStructure.USART_StopBits = USART_StopBits_1; 
- USART_InitStructure.USART_Parity = USART_Parity_No; 
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 
- USART_InitStructure.USART_Mode = USART_Mode_Tx; 
- USART_Init(USART3, &USART_InitStructure);  
- USART_Cmd(USART3, ENABLE); 
-  
-  
- // ADC1 Chanel11 an PC1  
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE); 
- GPIO_StructInit (&GPIO_InitStructure); 
- GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_1; 
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; 
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; 
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 
- GPIO_Init(GPIOC, &GPIO_InitStructure); 
-  
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); 
- ADC_CommonInitTypeDef ADC_CommonInitStructure; 
- ADC_CommonStructInit(&ADC_CommonInitStructure);  
- ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; 
- ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div6; 
- ADC_CommonInit(&ADC_CommonInitStructure); 
- ADC_InitTypeDef ADC_InitStructure; 
- ADC_StructInit(&ADC_InitStructure);  
- ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; 
- ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; 
- ADC_InitStructure.ADC_Resolution = ADC_Resolution_8b; 
- ADC_Init(ADC1, &ADC_InitStructure); 
- ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_28Cycles); 
- ADC_Cmd(ADC1, ENABLE); 
- ADC_SoftwareStartConv(ADC1); 
-  
-} 
- 
-int main(void) 
-{ 
- SystemInit(); 
- initApplication(); 
- uint8_t data=0; 
- do{ 
- waitMs(10); 
- data=ADC_GetConversionValue(ADC1); 
- USART_SendData(USART3,data); 
- } while (true); 
- return 0; 
-} 
- 
-extern "C" void SysTick_Handler(void) 
-{ 
- // Application SysTick 
-} 
-</code> 
- 
- 
-[[weiterführende Programmierung des STM32 in C|zurück zur Übersicht]]