stm32f4 de analog sinyal ölçme ve adc ile cevirme

Başlatan cebeci52, 09 Ağustos 2014, 16:44:34

cebeci52

stm32f4 kitinde aldıgım analog sinyali ölçüp adc ile cevirip usb ye atabilirmiyim

r32mp

Yapabilirsin.

Usb üzerinden bir programa göndereceksin anladığım kadarı ile ? microc'nin arm derleyicisini kullanarak kısa yoldan haledersin. hatta usb örneğide mevcud.
Farklı bir derleyici kullanacağım dersen. keil,iar vs... Örnekler den yayarlanabilirsin.

Basitçe adc okuma yapmak için:

#include "stm32f4xx_adc.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx.h"
 
 
// ADC AYAR
void ADC_AYAR(){
 
 
ADC_InitTypeDef adcinitayar1;
ADC_CommonInitTypeDef adcinitayar2;
GPIO_InitTypeDef portayar;
GPIO_InitTypeDef ledayar;
 
 
// SAAT SINYALLERINI AÇIYORUZ
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
 
 
// ADC AYARLARI
ADC_DeInit();
adcinitayar1.ADC_ContinuousConvMode = ENABLE;
adcinitayar1.ADC_DataAlign = ADC_DataAlign_Right;
adcinitayar1.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;
adcinitayar1.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConv_T1_CC1;
adcinitayar1.ADC_NbrOfConversion = 1;
adcinitayar1.ADC_Resolution = ADC_Resolution_10b;
adcinitayar1.ADC_ScanConvMode = DISABLE;
ADC_Init(ADC1, &adcinitayar1);
 
adcinitayar2.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
adcinitayar2.ADC_Mode = ADC_Mode_Independent;
adcinitayar2.ADC_Prescaler = ADC_Prescaler_Div2;
adcinitayar2.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&adcinitayar2);
 
 
// PA5 pini analog girisi
portayar.GPIO_Mode = GPIO_Mode_AN;
portayar.GPIO_Pin = GPIO_Pin_5;
portayar.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA , &portayar);
 
 
 
//ADC yi aciyoruz
ADC_Cmd(ADC1,ENABLE);
 
//adc kanal ayari
ADC_RegularChannelConfig(ADC1,ADC_Channel_5,1,ADC_SampleTime_3Cycles);
 
}
 
int adcx_oku(){
 
ADC_SoftwareStartConv(ADC1);
 
while (!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
return ADC_GetConversionValue(ADC1);
 
}
unsigned int okunan=0;
 
int main(void){
 
ADC_AYAR();
 
while(1){
 
okunan = adcx_oku();
//Usb üzerinden veriyi göndermek kalıyor geriye
 
}


Daha önce hiç usb ile veri transferi yapmamıştım forumda vardır mutlaka. Gene en kese yol MicroC arm. Bununla alakalı bir örnek bulayım.
Biz bizimle bizdeydik, biz bizimle bize geldik, biz bizimle bizdeyken bizi bizden mi sorarlar?