Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: Klein - 02 Kasım 2012, 15:28:29

Başlık: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 02 Kasım 2012, 15:28:29
Bu örneğimiz Usart3 RX kesmesi ile ile alınan veriyi aynen geri gönderen ECHO örneği.
Programı test etmek için hyper terminal kullanılabilir.  Hyper terminalde ne yazarsanız aynen size geri döner.
Daha önceki örneklerde , kütüphane ekleme , init vs.. konular anlatıldığı için, burada o konulara girmiyorum.


Kod:
#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_usart.h"
#include "stm32f4xx_tim.h"
#include "misc.h"

/********* Function prototypes *************************************/
void SendChar(char Tx);
void SendTxt(char *Txt);

GPIO_InitTypeDef GPIO_InitStruct;
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TBInitStruct;
USART_InitTypeDef USART_InitStructure;

uint8_t timer_update=0;
uint32_t ledtime=0;



/*****************  Interrupt handlers  ***********************************/
void TIM7_IRQHandler(void)
{
TIM7->SR=0;
timer_update=1;
}

void USART3_IRQHandler(void)
{
char temp;
temp=USART_ReceiveData(USART3);
SendChar(temp);
}

/***************************************************************************/


void init_tim7(void){

RCC_APB1PeriphClockCmd(RCC_APB1ENR_TIM7EN,ENABLE); // Timer saat kaynağını aç
TIM_TBInitStruct.TIM_Prescaler = 4199; // ÖnBölücü (PSC) değeri 4199
TIM_TBInitStruct.TIM_Period =1; // Otomatik geri yükleme (ARR) eşiği 1
TIM_TimeBaseInit(TIM7,&TIM_TBInitStruct); // Timeri init et

TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE); // Timer Update olayında interrupt istesin.
    NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);


    TIM_Cmd(TIM7, ENABLE);// Timeri başlat
}


void init_gpio(void){
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

  // Ledlere bağlı pinlerin başlatma ayarları
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStruct.GPIO_OType= GPIO_OType_PP;
  GPIO_InitStruct.GPIO_Speed= GPIO_Speed_100MHz;
  GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOD,&GPIO_InitStruct);

// Usart 3'e  bağlı pinlarin başlatma ayarları
  GPIO_PinAFConfig(GPIOB,10,GPIO_AF_USART3);
  GPIO_PinAFConfig(GPIOB,11,GPIO_AF_USART3);
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB, &GPIO_InitStruct);
}

void init_usart(void){

// usart başlatma ayarları
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
  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_Rx | USART_Mode_Tx;

  USART_Init(USART3, &USART_InitStructure);
  NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);
  USART_Cmd(USART3,ENABLE);

}


void SendChar(char Tx)
{
      while(!(USART3->SR&0x80));  // TX Buffer dolu ise bekle (Rehber Sayfa 646)
      USART_SendData(USART3,Tx);
}

void SendTxt(char *Txt)
{
      while(*Txt)
        {
          SendChar(*Txt);
          Txt++;
        }
}


int main(void)
{

  SystemInit();
  init_gpio();
  init_usart();
  init_tim7();

while(1)
    {
    if(timer_update){
            timer_update=0;

            if(++ledtime > 5000){
      ledtime =0;
                GPIO_ToggleBits(GPIOD,GPIO_Pin_12);
            }
        }

    }
}

Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: electricker - 04 Aralık 2012, 18:03:37
Hocam stm32f4 le çalışmaya yeni başladım. İki bilgisayar arasında .txt vs. dosya paylaşımını bu sistemle nasıl yaparız ? ya da nereden başlamam gerekiyor ? ??? ??? ???
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 05 Aralık 2012, 12:06:07
STM32F4'e girmeden önce  fat yapısı, dosya yapısı vs.. gibi konulara hakim olmak gerek.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: caglar - 07 Şubat 2013, 14:32:06
Ben bu örneği kopyalayıp yapıştırdım kütüphaneleri de seçtim ama sanırım kütüphanelerden kaynaklı hata alıyorum.
timer2.axf: Error: L6218E: Undefined symbol USART_SendData (referred from main.o).
Bütün hatalar böyle ve yeni başladığım için anlamadım açıkçası.
Yardımlarınızı bekliyorum.
Herkese kolay gelsin...
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 07 Şubat 2013, 19:11:09
USART_SendData(..) fonksiyonu tanımsız diyor.

"stm32f4xx_usart.h" dosyasının var olup olmadığını kontrol edin.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: caglar - 08 Şubat 2013, 05:35:56
Bu dosyayı projeye ekledim ama hala böyle bir hata veriyor.
Anlayamadım.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 15 Şubat 2013, 20:53:41
"stm32f4xx_conf.h" içerisinden  /*#include "stm32f4xx_usart.h" */ satırını bulup, satırı uncomment yapın.
Eğer bulamazsanız main.c dosyasının başına ekleyin.

#include "stm32f4xx_usart.h"
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Kaanx - 31 Mart 2013, 01:48:17
Hocam öncelıkle elınıze saglık cok sagolun uygulama için buradaki kodunuzu yazdım bir sorun yok çalısıyor suan fakat PC ye sanal port uzerınden veri göndermek istedim RealTerm de bunu göremedım hocam
sizin kodunuza ek olarak int main de

int main(void)
{
SystemInit();
init_gpio();
  init_usart();
  init_tim7();
  SendTxt("PicProje");
  while(1)
      {
      if(timer_update){
              timer_update=0;

              if(++ledtime > 5000){
        ledtime =0;
                  GPIO_ToggleBits(GPIOD,GPIO_Pin_12);
              }
          }

      }

}

olarak yazdım fakat real term de hiç bir veri göremedim.Donanımsal olarak board uzerınde baglantı yapmam gerekiyor mu birde hocam bunu merak ettim ? Af ile yönlendırme yapılıyor zaten gerek yok dıye dusndum fakat emın olamadım.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Erhan YILMAZ - 31 Mart 2013, 14:36:32
Hocam keilde stm32f4 libraryleri kullanarak proje oluşturmayı gösteren konuyu düzenleyecektiniz son durumu nedir? Konu linkini bulamıyorum.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 01 Nisan 2013, 04:27:26
Haftaya Expomed fuarı var. Ona hazırlanıyoruz. Çoğunlukla siteye bile giremiyoru. Fuar dönüşü ilgileneceğim.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: sadogan - 01 Nisan 2013, 12:48:03
Alıntı yapılan: Klein - 01 Nisan 2013, 04:27:26
Haftaya Expomed fuarı var. Ona hazırlanıyoruz. Çoğunlukla siteye bile giremiyoru. Fuar dönüşü ilgileneceğim.
Hocam stant ve firma isminiz nedir gelebilirsek ziyaret edelim.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 01 Nisan 2013, 21:56:31
öm attım.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: berat23 - 25 Mayıs 2013, 16:19:50
deneme1.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f4xx.o).
deneme1.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).


böyle bir hata alıyorum.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Gökhan BEKEN - 13 Ocak 2014, 16:15:24
Hocam , kütüphane dosyaları projemde bulunmadığı için, KEIL aşağıdaki satırlarda hata veriyor, bu dosyaları nerden bulabiliriz?
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_usart.h"
#include "stm32f4xx_tim.h"
#include "misc.h"
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: JKramer - 13 Ocak 2014, 16:24:56
F4 için Standart Peripheral Lib, ST'nin sitesinden indirebilirsiniz.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: M_B - 13 Ocak 2014, 16:45:42
Alıntı yapılan: meftun - 13 Ocak 2014, 16:15:24
Hocam , kütüphane dosyaları projemde bulunmadığı için, KEIL aşağıdaki satırlarda hata veriyor, bu dosyaları nerden bulabiliriz?
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_usart.h"
#include "stm32f4xx_tim.h"
#include "misc.h"
stm32f4discovery_fw\Libraries\STM32F4xx_StdPeriph_Driver\ klasoru icinde inc ve source klasorlerinde.

stm32f4discovery_fw dosyasını st den indirmeniz gerek
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419 (http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419)
linkinde STSW-STM32068 isimli dosyayı indiriniz.

Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Gökhan BEKEN - 13 Ocak 2014, 17:41:37
Teşekkür ederim hocam.
İndirdikten sonra, include edeceğimiz dosyaları proje klasörüne kopyaladım, derledim birşey değişmedi,
sonra "Source Group 1" kısmına "c" uzantılı dosyaları ekledim,
bir ton uyarı verdi, 2 adet error verdi.
Nerde yalnış yaptım acaba?
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 14 Ocak 2014, 15:26:39
Verdiği hata nedir?
stm32f4xx_conf.h içerisinde,   kullanılacak kütüphanelerin  header dosyalarının include edildiği bir bölüm var.
buradaki include satırları comment durumundadır.  kullanacaklarını uncomment yapman gerek.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Gökhan BEKEN - 14 Ocak 2014, 15:52:31
Derleme sonucu gelen uyarı ve hatalar şöyle:

Rebuild target 'Target 1'
assembling startup_stm32f40xx.s...
compiling main.c...
compiling misc.c...
misc.c(115): warning:  #223-D: function "assert_param" declared implicitly
misc.c(135): warning:  #223-D: function "assert_param" declared implicitly
misc.c(177): warning:  #223-D: function "assert_param" declared implicitly
misc.c(196): warning:  #223-D: function "assert_param" declared implicitly
misc.c(220): warning:  #223-D: function "assert_param" declared implicitly
compiling stm32f4xx_gpio.c...
stm32f4xx_gpio.c(123): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(187): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(260): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(304): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(326): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(343): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(365): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(383): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(402): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(422): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(445): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(459): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_gpio.c(535): warning:  #223-D: function "assert_param" declared implicitly
compiling stm32f4xx_rcc.c...
stm32f4xx_rcc.c(240): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(296): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(331): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(356): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(396): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(439): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(462): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(488): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(503): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(521): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(548): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(586): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(692): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(745): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(777): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(808): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(985): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1015): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1032): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1049): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1088): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1120): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1147): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1197): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1237): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1276): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1305): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1329): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1376): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1412): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1458): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1490): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1517): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1567): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1607): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1652): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1692): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1754): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_rcc.c(1785): warning:  #223-D: function "assert_param" declared implicitly
compiling stm32f4xx_tim.c...
stm32f4xx_tim.c(197): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(287): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(357): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(382): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(406): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(421): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(435): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(449): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(465): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(494): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(519): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(546): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(569): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(589): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(670): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(751): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(832): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(912): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1012): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1055): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1071): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1086): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1101): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1121): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1150): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1178): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1207): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1235): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1265): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1294): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1323): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1352): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1383): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1413): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1443): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1473): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1503): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1532): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1561): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1590): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1616): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1644): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1671): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1698): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1725): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1752): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1783): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1813): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1893): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(1971): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2025): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2040): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2054): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2068): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2088): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2113): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2137): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2161): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2214): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2258): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2283): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2308): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2365): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2403): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2437): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2478): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2508): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2547): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2584): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2611): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2637): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2676): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2697): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2728): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2770): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2815): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2884): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2925): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2949): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(2972): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(3005): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(3065): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(3112): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_tim.c(3163): warning:  #223-D: function "assert_param" declared implicitly
compiling stm32f4xx_usart.c...
stm32f4xx_usart.c(181): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(235): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(364): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(411): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(437): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(458): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(484): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(541): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(557): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(608): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(628): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(655): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(724): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(742): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(766): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(819): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(904): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(923): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(948): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1019): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1037): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1083): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1213): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1276): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1324): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1360): warning:  #223-D: function "assert_param" declared implicitly
stm32f4xx_usart.c(1433): warning:  #223-D: function "assert_param" declared implicitly
linking...
.\seriport.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f40xx.o).
.\seriport.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
".\seriport.axf" - 2 Errors, 168 Warning(s).
Target not created

(http://s8.postimg.cc/tli8hmcpx/hata.png)

stm32f4xx_conf.h dosyası bende yok, keil içinde arama yaptım orda da yok, indirdiğim kütüphanelerde arattım yok.
Proje dosyası burda: http://www.4shared.com/rar/CK0hoykdce/keilStmSeriport.html (http://www.4shared.com/rar/CK0hoykdce/keilStmSeriport.html)
Rica etsem çalışan keil projesini paylaşabilir misiniz?
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 14 Ocak 2014, 17:48:44
Başka bir başlıkta, keil ile ST_LIB kullanma konusuna bir giriş yaptım. Konu oradan devam ederse iyi olur.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Gökhan BEKEN - 14 Ocak 2014, 18:04:19
Teşekkür ederim hocam. Derleme başarılı oldu, yazdığınız dosya stm32f4xx_conf.h ve stm32f4xx_conf.c sayesinde
ayrıca target özelliklerinde c/c++ kısmında define bölümüne "USE_STDPERIPH_DRIVER" yazmamışım, onu da ekledim.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: fthsev - 17 Temmuz 2014, 19:27:46
[/code]
Alıntı yapılan: Klein - 02 Kasım 2012, 15:28:29
Bu örneğimiz Usart3 RX kesmesi ile ile alınan veriyi aynen geri gönderen ECHO örneği.
Programı test etmek için hyper terminal kullanılabilir.  Hyper terminalde ne yazarsanız aynen size geri döner.
Daha önceki örneklerde , kütüphane ekleme , init vs.. konular anlatıldığı için, burada o konulara girmiyorum.


Kod:
#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_usart.h"
#include "stm32f4xx_tim.h"
#include "misc.h"

/********* Function prototypes *************************************/
void SendChar(char Tx);
void SendTxt(char *Txt);

GPIO_InitTypeDef GPIO_InitStruct;
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TBInitStruct;
USART_InitTypeDef USART_InitStructure;

uint8_t timer_update=0;
uint32_t ledtime=0;



/*****************  Interrupt handlers  ***********************************/
void TIM7_IRQHandler(void)
{
TIM7->SR=0;
timer_update=1;
}

void USART3_IRQHandler(void)
{
char temp;
temp=USART_ReceiveData(USART3);
SendChar(temp);
}

/***************************************************************************/


void init_tim7(void){

RCC_APB1PeriphClockCmd(RCC_APB1ENR_TIM7EN,ENABLE); // Timer saat kaynağını aç
TIM_TBInitStruct.TIM_Prescaler = 4199; // ÖnBölücü (PSC) değeri 4199
TIM_TBInitStruct.TIM_Period =1; // Otomatik geri yükleme (ARR) eşiği 1
TIM_TimeBaseInit(TIM7,&TIM_TBInitStruct); // Timeri init et

TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE); // Timer Update olayında interrupt istesin.
    NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);


    TIM_Cmd(TIM7, ENABLE);// Timeri başlat
}


void init_gpio(void){
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

  // Ledlere bağlı pinlerin başlatma ayarları
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStruct.GPIO_OType= GPIO_OType_PP;
  GPIO_InitStruct.GPIO_Speed= GPIO_Speed_100MHz;
  GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOD,&GPIO_InitStruct);

// Usart 3'e  bağlı pinlarin başlatma ayarları
  GPIO_PinAFConfig(GPIOB,10,GPIO_AF_USART3);
  GPIO_PinAFConfig(GPIOB,11,GPIO_AF_USART3);
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB, &GPIO_InitStruct);
}

void init_usart(void){

// usart başlatma ayarları
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
  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_Rx | USART_Mode_Tx;

  USART_Init(USART3, &USART_InitStructure);
  NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);
  USART_Cmd(USART3,ENABLE);

}


void SendChar(char Tx)
{
      while(!(USART3->SR&0x80));  // TX Buffer dolu ise bekle (Rehber Sayfa 646)
      USART_SendData(USART3,Tx);
}

void SendTxt(char *Txt)
{
      while(*Txt)
        {
          SendChar(*Txt);
          Txt++;
        }
}


int main(void)
{

  SystemInit();
  init_gpio();
  init_usart();
  init_tim7();

while(1)
    {
    if(timer_update){
            timer_update=0;

            if(++ledtime > 5000){
      ledtime =0;
                GPIO_ToggleBits(GPIOD,GPIO_Pin_12);
            }
        }

    }
}



Klein hocam usart1 ile c# arayüzüne data göndermeye çalışıyorum ama mesela 'a' gönderince ? işareti alıyorum. bu durum neden kaynaklanabilir?
Kod kısmı

char temp;
  temp='a';
  SendChar(temp);

void SendChar(char Tx)
{
      while( !(USART1->SR & 0x00000040) );
      USART_SendData(USART1,Tx);
}
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: kimlenbu - 17 Temmuz 2014, 20:04:37
baud rate'ler farklıdır, stop bit sayısı farklıdır, parity tipi farklıdır. İlk aşamada bunların STM32'de de C#'da yazdığın programda da aynı olduğuna emin ol.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: fthsev - 17 Temmuz 2014, 21:40:39
Alıntı yapılan: kimlenbu - 17 Temmuz 2014, 20:04:37
baud rate'ler farklıdır, stop bit sayısı farklıdır, parity tipi farklıdır. İlk aşamada bunların STM32'de de C#'da yazdığın programda da aynı olduğuna emin ol.
Kontrol ettim hepsi aynı. Sadece soru işareti değil mesala c# a  gonderdigim'a' karakterini byte degiskenin içine alınca 225 değerini veriyor  Aklıma şöyle bir şey geliyor. Acaba char karakterler gönderilirken byte a çevrilip mi gönderiliyor. C# da char degiskenin içine aliyorum. Buradan kaynaklaniyor olabilir mi? Bilgisayarım su an yanımda olmadığı için kontrol edemiyorum.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: yldzelektronik - 18 Temmuz 2014, 07:54:44
Alıntı yapılan: fthsev - 17 Temmuz 2014, 21:40:39
...  Aklıma şöyle bir şey geliyor. Acaba char karakterler gönderilirken byte a çevrilip mi gönderiliyor. C# da char degiskenin içine aliyorum. Buradan kaynaklaniyor olabilir mi?...

Seri porta yazmak için nasıl bir metod izliyorsunuz bilmiyorum.Ancak zaten çok farklı çeşitler de yok.Örneğin; serialport1.Write(....); parametre olarak çok çeşitli şeyleri kabul edebiliyor. O yüzden siz oraya string de girseniz yine giden veri ascii koduyla gidecektir.Ancak soru işareti vs alıyor olmanız;

Alıntı yapılan: kimlenbu - 17 Temmuz 2014, 20:04:37
baud rate'ler farklıdır, stop bit sayısı farklıdır, parity tipi farklıdır. İlk aşamada bunların STM32'de de C#'da yazdığın programda da aynı olduğuna emin ol.

İhtimallerinden olabilir.Belki gnd hattı ile ilgili problem de olabilir. Ben gnd hattı olmadan aynı prizden beslenen devremi ve bilgisayar haberleştirebiliyorum.Fakat sizin sorununuz bu da olabilir.

Eğer mümkünse kodları paylaşın inceleyelim.Ona göre cevap verelim.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: fthsev - 18 Temmuz 2014, 14:56:12
Alıntı yapılan: yldzelektronik - 18 Temmuz 2014, 07:54:44

Eğer mümkünse kodları paylaşın inceleyelim.Ona göre cevap verelim.

Kodları paylaşıyorum. Ayrıca bağlantılar da şu şekilde;

stm32f4 kitinin b6 ve b7 pinlerini(USART1) FTDI Uart click kartının rx ve tx pinlerine bağlıyorum. kitte buluna bir gnd pinini
FTDI in gnd pinine bağlıyorum. En sonda iki usb kablosu ile hem uart click i hemde kiti bilgisayara bağlıyorum.
Kodlar şu şekilde

Arm:
void init_usart()
{
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct);

GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1);

USART_InitStruct.USART_BaudRate = 9600;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_Parity = USART_Parity_No;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStruct.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART1, &USART_InitStruct);
USART_Cmd(USART1, ENABLE);
}

void SendChar(char Tx)
{
  while( !(USART1->SR & 0x00000040) );
          USART_SendData(USART1,Tx);
      //Delay(0x3fffff);
}
int main(void)
{

  SystemInit();
  clockayar();
  init_gpio();
  init_usart();
  init_tim7();
  //Delay(0x3fffff);
   char temp;
   temp='a';
   SendChar(temp);
  //Delay(0x2fffff);


    while(1)
    {
   
    if(TIM_GetCounter(TIM7)>1999){
      GPIO_SetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
      }else
      GPIO_ResetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
     }
}


c#:

   

char[] veri = new char[1];

private void Form1_Load(object sender, EventArgs e)

  {
        CheckForIllegalCrossThreadCalls = false;

        serialPort1.PortName = "COM4";
   
        serialPort1.BaudRate = int.Parse("9600");

        serialPort1.DataBits = int.Parse("8");

        serialPort1.StopBits = System.IO.Ports.StopBits.One;

        serialPort1.Parity = Parity.None;

        serialPort1.Open();

        serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataRecived);

}

private void button2_Click(object sender, EventArgs e)
        {
           
           
         
            textBox3.Text = Convert.ToString(veri[0]);
           
           
           
       
        }

public void serialPort1_DataRecived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {

            MessageBox.Show("Gelen veri");
            serialPort1.Read(veri, 0, 1);
        }
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: fthsev - 19 Temmuz 2014, 17:50:48
Sorunumu çözdüm. Aynı problemle karşılaşan başka arkadaşlara da yardımcı olur umarım. Sorun system_stm32f4xx.c dosyasında görünen HSE kristal degeri ile board üzerinde yer alan kristalin farklı olmasından kaynaklanıyor. Bu dosyada yer alan PLL_M değerini 25 yerine 8 ile ve system_stm32f4xx.h yada stm32f4xx.h dosyadında yer alan

#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */

bölümü 8000000 ile değiştirmemiz gerekiyor. Tabi board üzerindeki kristal 8 Mhz ise..



mesaj birleştirme:: 19 Temmuz 2014, 18:04:10

Bir problemle daha karşılaştım:) Bilmiyorum belkide problem değildir. Bilen arkadaşlardan yardımcı olmasını bekliyorum. Bilgisayara Tx interrupt ile ftdı üzerinden veri gönderiyorum. Her data send komutundan sonra delay komutunu yazmazsam datanın sadece ilk bytenı karşıda görebiliyorum. Bu normal bir durum mudur?

Kodlar Klein hocamın paylaştığı bir konudan:


void Usart_SendBuf(USART_TypeDef *USART,  uint16_t length, char *buff){

     send_ok=0;
    tx_len = length; // göndereceğimiz bayt sayısı.
                                       // eğer string gönderiyor olsaydık, bu sayıya ihtiyacımız olmayacaktı.
    tx_ptr = buff;  // kullanacağımız dizinin adresini pointerimize atıyoruz.
    USART_ITConfig(USART1,USART_IT_TXE,ENABLE); // TX tamponu (DR) boşaldığında kesme üret.

}
void USART1_IRQHandler(void)
{


    if(USART_GetITStatus(USART1,USART_IT_TXE)){
        if(--tx_len == 0){ // Dizimizdeki tüm elemanlar bitti mi?
            USART_ITConfig(USART1,USART_IT_TXE,DISABLE); // artık TXE bayrağı işimize yaramaz.
            USART_ITConfig(USART1,USART_IT_TC,ENABLE); // Gönderme tamamlandığında kesme üret.
        }

        USART_SendData(USART1,(uint16_t) *tx_ptr);
        //Delay(0xf4240);
        tx_ptr++;
        USART_ClearITPendingBit(USART1,USART_IT_TXE);

    }

    if(USART_GetITStatus(USART1,USART_IT_TC)){ // Son bit de yerine ulaştı mı?

        USART_ITConfig(USART1,USART_IT_TC,DISABLE); // Verimizin tümü gitti Artık TC bayrağına da ihtiyaç yok.
        USART_ClearITPendingBit(USART1,USART_IT_TC);
                             send_ok=1;
    }

}


int main(void)
{
SystemInit();
init_gpio();
init_usart();
init_tim7();

               Usart_SendBuf(USART1,1,"*");
               while(!send_ok);
               Usart_SendBuf(USART1,8,"picproje");
               while(!send_ok);
    while(1)
    {
    if(TIM_GetCounter(TIM7)>1999){
          GPIO_SetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
          }else
          GPIO_ResetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
    }
}


C# kodları:


private void button2_Click(object sender, EventArgs e)
        {
           
           
            textBox3.Text = "";
            textBox3.Text = Convert.ToString(voltaj[0]) + Convert.ToString(voltaj[1]) + Convert.ToString(voltaj[2]) + Convert.ToString(voltaj[3])+ "  V";
           
           
        }

       
           

        public void serialPort1_DataRecived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {

           
            serialPort1.Read(veri, 0, 1);
         
            if (al)
            {
                voltaj[i] = veri[0];
                i++;
                if (i == 8)
                {
                    al = false;
                }
            }
            if (ala)
            {
                sicaklik[x] = veri[0];
                x++;
                if (x == 8)
                {
                    ala = false;
                }
            }
            if (veri[0] == '!')
            {

                al = true;
                i = 0;
            }
            if (veri[0] == '*')
            {
                ala = true;
                x = 0;
            }


Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Klein - 11 Ocak 2015, 06:42:36
Normal.
Örnek Interrupt kullanarak veri gönderme örneği.  Veri gönder dediğinizde , veri bir tampona yazılıyor ve işlem başlatılıyor. Verinin tümü gönderilene kadar herhangi bir noktada bekleme yapılmıyor.
Önceki paketin  gönderilmesi bitmeden yeni bir paket göndermek isterseniz sadece 1 byte göndermeniz normal.
Ancak bu sorunu delay kullanrak çözmek doğru değil. Bu örneğin ruhuna da uygun değil zaten. Kesme kullanmanın amacı , programı bir yerde bekletmemek.
Sorunu çözmek için örnekte olduğu gibi  "send_ok" bayrağını kontrol etmelisiniz. fakat bunu örnekteki gibi while döngüsü içinde yaparsanız yine olmaz.

sendok bayrağını kontrol edeceksiniz. eğer bayrak 1 ise veriyi göndereceksiniz. eğer bayrak 0 ise veriyi göndermeyecek , diğer işlerinize devam edeceksiniz. Arada bir kontrol edip 1 olduğunda tekrar göndereceksiniz.
Başlık: Ynt: STM32F4xx Std_Lib USART (Örnek)
Gönderen: Gökhan BEKEN - 11 Ocak 2015, 14:43:32
Merhaba
USART init yapılınca, anlamsız bir karakter yolluyor, bunun sebebini ve nasıl önleyeceğimizi bilen var mı?
Daha önce forumda gördüm diye hatırlıyorum ama bulamadım.