- Kayıt
- 13 Nisan 2018
- Mesajlar
- 8
- Tepkiler
- 0
- Meslek
- öğretmen
- Üniv
- ankara
usart birimi ile veri almak için HAL fonksiyonlarını kullanıyorum.
örneğin :
uint8_t rx_data[20];
HAL_UART_Receive_DMA(&huart1,&rx_data[0],20); //fonksiyonuna verdiğim rx_data array'i daha önceden boyutu belirlenmiş bir array.
ilk datayı aldım. sonra ikinci bir data almak için gönderim yapıldığında diğerinin devamına yazıyor. ardından data yazacak yer kalmayınca en baştan önceki verilerin üzerine yazmaya başlıyor. umarım anlatabilmişimdir. teşekkürler.
sorunun ne olduğunu buldum. datayı aldığım bufferi bir şekilde boşaltmak için kullanılan yöntem : "Circular Buffer"
evet bu metod ile ilgili araştırma yaparsanız sonuca ulaşabilirsiniz.
örneğin :
uint8_t rx_data[20];
HAL_UART_Receive_DMA(&huart1,&rx_data[0],20); //fonksiyonuna verdiğim rx_data array'i daha önceden boyutu belirlenmiş bir array.
ilk datayı aldım. sonra ikinci bir data almak için gönderim yapıldığında diğerinin devamına yazıyor. ardından data yazacak yer kalmayınca en baştan önceki verilerin üzerine yazmaya başlıyor. umarım anlatabilmişimdir. teşekkürler.
İlgili tarihte otomatik birleştirildi:
sorunun ne olduğunu buldum. datayı aldığım bufferi bir şekilde boşaltmak için kullanılan yöntem : "Circular Buffer"
evet bu metod ile ilgili araştırma yaparsanız sonuca ulaşabilirsiniz.
Son düzenleme: