تمرین تقویت حافظه
کاربرد سایت:
- پروژههای متنباز Embedded
- نمونهکد
- کتابخانهها
- Firmware Projects
فهرست صفحه
در بسیاری از سیستمهای میکروکنترلری، ارتباطات سریال UART در موارد زیادی برای ارسال و دریافت دادهها استفاده میشود.
با این حال، در صورتی که این ارتباطات به درستی بهینهسازی نشوند، میتوانند مصرف انرژی زیادی داشته باشند.
برای کاهش مصرف انرژی در ارتباطات UART :
از حالت Sleep برای میکروکنترلر استفاده کنید تا در هنگام عدم ارسال یا دریافت دادهها، میکروکنترلر به خواب رفته و مصرف انرژی کاهش یابد.
از تکنیکهای کاهش نرخ Baud استفاده کنید.
این کار میتواند مصرف انرژی را در ارتباطات UART به حداقل برساند، چرا که سرعت کمتری در انتقال دادهها استفاده میشود.
آمادهسازی و انتقال دادهها به صورت همزمان (DMA) برای ارسال و دریافت دادهها میتواند نیاز به دخالت CPU را کاهش دهد و مصرف انرژی را کاهش دهد.
کد نمونه برای فعالسازی حالت Sleep در UART :
void uart_sleep_mode() {
// ارسال آخرین داده
USART_SendData(USART1, last_data);
// وارد کردن UART به حالت Sleep
USART1->CR1 &= ~USART_CR1_UE; // غیرفعال کردن UART
__WFI(); // دستور جهت رفتن به حالت Sleep
USART1->CR1 |= USART_CR1_UE; // فعال کردن مجدد UART
}