stm32f4 kitinde aldıgım analog sinyali ölçüp adc ile cevirip usb ye atabilirmiyim
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.