stm32f4 ile seri port çalışan tek örnek arıyorum

Başlatan cebeci52, 15 Ağustos 2014, 20:11:26

cebeci52

stm32f4 ile usart protokolünü kullanan pc ye ft232 ile baglanıp  'a' harfini yazdıran var mı varsa en basit bir örnek arıyorum

magnetron

ST 'nin Standart Peripheral Library 'ye baktın mı ?

cebeci52

çalışan en basit örnek arıyorum ingilizcem yok.

EMP_Otto

#include "stm32f4xx_usart.h"
#include "stm32f4xx_gpio.h";
#include "stm32f4xx_rcc.h";
#include "stdio.h"
void usart_init()
{
	USART_InitTypeDef usart3;
	GPIO_InitTypeDef pin_ayar;
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//Usart 3 clock aktif edildi
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);

	usart3.USART_BaudRate=9600;
	usart3.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
	usart3.USART_Mode=USART_Mode_Tx;
	usart3.USART_Parity=USART_Parity_No;
	usart3.USART_StopBits=USART_StopBits_1;
	usart3.USART_WordLength=USART_WordLength_8b;
	USART_Init(USART3,&usart3);
    USART_Cmd(USART3,ENABLE);//Usart3 aktif edildi

    ///////////pin ayarları/////////////
    pin_ayar.GPIO_Mode=GPIO_Mode_AF;
    pin_ayar.GPIO_Pin=GPIO_Pin_8;
    pin_ayar.GPIO_Speed=GPIO_Speed_50MHz;
    pin_ayar.GPIO_OType = GPIO_OType_PP;
    pin_ayar.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOD,&pin_ayar);

    GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_USART3);//D8 pini tx olarak atandı
}
void USART_puts(USART_TypeDef* USARTx, volatile char *s){

while(*s){

while( !(USARTx->SR & 0x00000040) );
send_char(*s);
*s++;
}
}
void send_char(char c)
{
	while(!(USART3->SR&0x80));
	   USART3->DR=c;
}

int main(void)
{ 

	usart_init();
	 USART_puts(USART3,"-------------------------------------\n");
	 USART_puts(USART3, "-----------USART3 DENEME------------\n");
	 USART_puts(USART3,"-------------------------------------\n");
    while(1)
    {

    }
}
Bu işler zordur,özveri ister...

cebeci52

#4
üstat bu örneği nerede çalıştıracam açıklar mısın pin baglantıları nasıl olacak derleyici hangisi kullanacam adım adım açıklarmısınız.

mesaj birleştirme:: 15 Ağustos 2014, 23:11:07

keil de yazdım çalıştırdım resimdeki hatayı verdi. cevirici olarak ftdi232 kullanıyorum. tx pinini pd8 e bagladım sorun nerde çözemedim.





EMP_Otto

Bu işler zordur,özveri ister...

cebeci52

bu programı nasıl nerde çalıştıracam cocox nasıl kullanılıyo bilsem yapacam zaten. keil de derledim olmadı.

EMP_Otto

keilde calısması için stm32f4xx_usart.h kütüphanesini eklersen calısır.
Bu işler zordur,özveri ister...

cebeci52

#8
kütüphaneyi de ekledim hata veriyor şu şekilde




mesaj birleştirme:: 16 Ağustos 2014, 00:17:10

stm32f4 ile seri port çalışan bir örnek istiyorum denemiş hata vermeyen.

elimde stm32f4 ve ftdi232 comport chip var şu sorularımada cevap olursa ben de nerde nasıl çalıştıracagımı anlarım.

hangi derleyicide çalıştıracam
sonuçları hangi terminalde nasıl görecem
baglantıyı nasıl yapacam pin bacakları nereye baglanacak

yardım decek birisi var mı. adım adım nasıl çalışacagımı anlatacak.

EMP_Otto

1-sana  link olarak attıgım program coocox derleyeci ile derlemen gerekiyor.
2-sonucları seriport terminal programı kullanarak göreceksin(putty mesela)
3-stm32 den cıkan tx pinini ftdi232 nin rx pinine baglayacaksın ayrıca stm32nin topragı ile ftdi232 nin topragınıda birbirine bağla tamamdır
Bu işler zordur,özveri ister...

cebeci52

üstat de yorduk kusura bakma stm32 de ftdi den cıkan rx pinini nereye baglayacam tx pini hangisi stm32f4 de.

EMP_Otto

#11
stm32de tx pini D8 sen bu pini ftdi232 de rx pinine baglicaksın.Daha sonra aygıt yöneticisinden ftdi232 seriport dönüştücünün seriport adresine bakacaksın.Sonrada putty ile o comport adresine 9600 baudrate ile baglanacaksın bitti :)

Ayrıca USART_Lib->Debug->bin->USART_Lib.hex dosyasını stm32 ye atarakta programın calıstıgını görebilirsin.
Bu işler zordur,özveri ister...

cebeci52

üstat cocox ide de derledim hata verdi şu şekilde



hadi bunu yapamadım hex dosyasını atayım dedim ondada çalışmadı putty de bişey gelmiyor. com port 19 benim o da şu şekilde.




sorunu bulamadım.

EMP_Otto

putty ekranı acılınca enter a bas sonrada stm32 ye reset at bakim :)
Bu işler zordur,özveri ister...

cebeci52

#14
stm32f4 ftdi 232 ve pc baglantılarını da yollayım hatta sorun nerde çözemedim.






mesaj birleştirme:: 16 Ağustos 2014, 01:16:28

enter a da bastım stm32f4 de resete de bastım bişey olmadı