Truyền nhận dữ liệu với giao tiếp Serial (UART) trên Arduino

Chuẩn giao tiếp truyền thông nối tiếp UART trên Arduino (hay còn được biết đến với tên gọi Serial) là chuẩn giao tiếp được sử dụng rất nhiều trong các ứng dụng thống nhúng. Trong bài viết này, mình sẽ hướng dẫn các bạn tiếp cận và lập trình với giao tiếp UART một cách đơn giản nhất

Hướng dẫn sử dụng STM32CubeMX và Keil C để lập trình STM32

Hướng dẫn sử dụng STM32CubeMX và Keil C để lập trình STM32

Phần mềm STM32CubeMX là một phần mềm hỗ trợ việc cấu hình các chức năng cho các dòng vi điều khiển STM32 thông qua giao diện đồ họa và tạo ra code từ các cấu hình đó. Keil C IDE là một môi trường phát triển tích hợp giúp chúng ta có thể viết code, compile, debugs, nạp chương trình xuống vi điều khiển. Bài viết này hướng dẫn cho những bạn mới bắt đầu tìm hiểu dòng vi điều khiển STM32 cách tiếp cận và sử dụng 2 phần mềm này.

Tìm hiểu phần cứng board mạch Arduino Uno R3

Arduino Uno R3 là một Board mạch vi điều khiển phổ biến được rất nhiều người sử dụng để học hoặc làm các ứng dụng nhúng đơn giản. Các ưu điểm khi các bạn làm việc với Arduino là thư viện hỗ trợ đầy đủ, cộng đồng người sử dụng đông, rất nhiều ví dụ và đề tài mẫu để tham khảo. Tuy nhiên, lại có ít bài viết đề cập tới phần cứng của Board mạch Arduino cho những người mới bắt đầu. Hiểu được thiết kế phần cứng giúp các bạn có thể tự thiết kế 1 sản phẩm hoàn chỉnh từ vi điều khiển và các linh kiện rời mà không cần sử dụng nguyên board Arduino. Có thể đây sẽ là 1 bước quan trọng để các bạn hoàn thiện hơn khả năng của mình.

Sử dụng phần mềm Insomnia để thực hiện HTTP Request

Sử dụng phần mềm Insomnia để thực hiện HTTP Request

Insomnia là một ứng dụng máy tính đa nền tảng giúp các bạn làm việc với giao thức HTTP một các thuận tiện. Giao diện sử dụng của Insomnia rất đơn giản mà lại không nhàm chán. Trong lĩnh vực  Internet of Things hoặc Embedded System thì chúng ta thường làm việc với các module Wifi , Ethernet, GPRS, 3G để truyền nhận dữ liệu với Server thông qua giao thức HTTP bằng các phương thức phổ biến như GET, POST. Bài viết này sẽ hướng dẫn các bạn cách cài đặt và thực hiện một HTTP Request trên Insomnia. 

Cách phân biệt các chân sinh ra ngắt trên vi điều khiển STM32

Cách phân biệt các chân sinh ra ngắt trên vi điều khiển STM32

Làm sao để biết yêu cầu ngắt được tạo ra từ chân GPIO nào khi chương trình của bạn sử dụng nhiều chân External Interrupt? Trong bài viết này, mình sẽ giúp các bạn giải quyết được vấn đề trên với các ví dụ cụ thể. Mình sử dụng vi điều khiển STM32F103C8T6, cấu hình bằng STM32CubeMX sau đó code bằng Keil C IDE, sử dụng thư viện HAL. 

STM32F103 – Vấn đề ghi giá trị cho 1 chân GPIO_INPUT và GPIO_EXTI

STM32F103C8T6 – Từ 1 câu chuyện thực tế: việc ghi giá trị vào 1 chân đã được cấu hình GPIO INPUT hay GPIO External Interrupt là có tác dụng, điều này có thể dẫn đến chương trình của bạn bị lỗi. Mình đã debug quan sát giá trị thanh ghi và đo đạc thực tế trên chân vi điều khiển để kiểm tra.

Programable Peripheral Interconnect trên chip Bluetooth nRF52832

Programable Peripheral Interconnect trên chip Bluetooth nRF52832

Programable Peripheral Interconnect (PPI) là chức năng nên chip Bluetooth nRF52832 cho phép một ngoại vi tự động tương tác với các ngoại vi khác sử dụng các task và event mà không cần sự can thiệp của CPU. Khai thác PPI giúp tăng tốc độ thực thi các công việc đồng thời tiết kiệm năng lượng.

Giao tiếp UART trên Chip Bluetooth nRF52832

Giao tiếp UART trên Chip Bluetooth nRF52832

Giao tiếp UART trên Chip Bluetooth nRF52832 hoạt động ở chế độ Full-Duplex với bộ truyền, nhận độc lập, hỗ trợ Hardware flow control, kiểm tra Parity và sử dụng 1 bit kết thúc. Mặc dù chỉ có 01 bộ UART nhưng bạn có thể cấu hình bất kỳ chân IO nào để thực hiện giao tiếp này. UART retarget printf cũng được cung cấp sẵn trong SKD mang đến sự tiện lợi người phát triển.

Task và event trên các chân I/O của nRF52832 SoC Bluetooth

Task và event trên các chân I/O của nRF52832 SoC Bluetooth

Ngoài việc lập trình GPIO theo phương pháp phổ thông như bài hướng dẫn trước đã trình bày thì chúng ta còn có thể việc làm việc với các I/O này thông qua các Task và Event được thiết kế trong khối GPIOTE của nRF52832 SoC với 8 channels. Điểm ưu việt của Event là giúp cho chúng ta phát hiện được sự kiện thay đổi ngay lập tức để có thể thực hiện các công việc tương ứng với sự kiện đó. Nếu chỉ dùng tính năng INPUT thông thường thì chúng ta chỉ có thể phát hiện khi câu lệnh đọc và kiểm tra giá trị logic được thực hiện.