Stm32 · Ocak 18, 2013 0

Stm32 USART ve sprintf, printf

Merhaba uzun zamandır cevabını aradığım bir problem vardı CoIDE de. sprintf komutu float tanımlamalarda çalışmıyordu.pinouts_serial[1]

hem çözümü buldum hemde Usart1 ile ilgili bir çalışma yaptım.

Önce CoIde ile alakalı problemi çözelim. Bunun için projeye eklediğimiz iki dosyada değişiklik yapacağız.

CoIde ile yeni bir proje oluşturup işlemcimizi seçtikten sonra (stm32f100RB) ,  repository penceresinden  C Library, CMSIS Core, CMSIS Core dosyalarının  seçelim.

Bazı  blog ve forumlarda  retarget printf dosyasınında eklenmesini istesede biz bunu yapmayacağız. Bir sonraki basamak ise aynı pencerenin Others sekmesinde  RCC,GPIO,FLASH ve USART ın seçilmesi gerekiyor. USART ı seri iletişim yapacağımız için seçiyoruz.

Hata ile ilgili olarak il yapacağımız değişiklik startup_stm32f10x_md_vl.c dosyasında olacak.

dosyada geçen

kod blogunu

ilr değişmesi si gerekir.
ikinci işlemimiz ise yine aynı dosyada

kodunun

değiştirmektir. Bu dosya ile işlemimiz bitti. Kaydedip kapatmak vakti gelmiştir.
Değişiklik yapacağımız diğer dosya syscalls.c dosyası.

kod blogunu

ile değişmek gerekiyor. Değiştirme işlemini yaptıktan sonra artık printf fonksiyonunu kullanarak USART1 den veri gönderebilir, sprintf ile dizileri doldurabiliriz. (tanımda garip oldu)
 
USART la ilgili programımıza gelecek olursak. yukardaki düzenlemeleri yaptıktan sonra kodları yapıştırıp çalıştırınız. Projede sadece TX kullanılmıştır. GPIOA.9 dan bilgiler gönderilmektedir.
 

Ziyaretci : 241