Đối với những lập trình viên đã và đang làm việc với vi điều khiển STM32 chắc hẳn từng đọc qua các lưu ý khi viết một chương trình phục vụ ngắt, trong đó có lưu ý không nên sử dụng hàm HAL_Delay ở các chương trình này. Vậy việc gọi HAL_Delay trong các chương trình phục vụ ngắt sẽ tác động đến luồng thực thi của vi điều khiển như thế nào?Continue Reading

Ở bài viết này các bạn sẽ được thực hành những lý thuyết được nêu ở bài “Tìm hiểu về định dạng của một số gói tin MQTT” để có thể nắm rõ về mô hình publish/subscribe giữa các Client trong giao thức MQTT, cũng như định dạng của một số gói tin MQTT.Continue Reading

Một Client có thể đóng vai trò là một Publisher khi thực hiện publish một gói tin hoặc là một Subscriber khi thực hiện subscribe một Topic. Các Client muốn thực hiện publish hoặc subscribe thì phải thực hiện các bước sau: Thiết lập kết nối TCP đến máy chủ có chứa Broker, thiết lập kết nối đến Broker bằng cách gửi gói tin CONNECT, đợi gói tin phản hồi CONNACK từ Broker để kiểm tra kết nối được thiết lập thành công hay thất bại, nếu kết nối thành công, Client có thể gửi gói tin PUBLISH hoặc SUBSCRIBE đến một Topic tại Broker.Continue Reading

Modbus RTU hoạt động dựa trên nguyên tắc master – slave, một thiết bị master sẽ điều khiển một hoặc nhiều thiết bị slave. Slave không thể truyền dữ liệu tự động được mà cần phải được Master yêu cầu. Master sẽ ghi hoặc đọc dữ liệu trong các thanh ghi của thiết bị Slave. Mỗi Slave có một địa chỉ 8 bit và không trùng với các Slave khác. Khái niệm về giao thức Modbus RTU kết nối phần cứng cho giao thức này đã được mình trình bày trong bài viết tại đây. Còn trong bài viết này, mình sẽ giới thiệu về cấu trúc của một khung truyền giao thức Modbus RTU.Continue Reading

Board STM32 BluePill là một Board mạch phát triển STM32 đơn giản với vi điều khiển STM32F103C8T6. Board mạch này không phải chính hãng của STMicroelectronics, sử dụng kèm với một mạch nạp/debugger ST-Link. Có giá thành rẻ nên thường được các bạn sinh viên lựa chọn khi mới bắt đầu học/tìm hiểu về dòng vi điều khiển STM32 lõi ARM. Tuy nhiên, trên thị trường hiện nay có xuất hiện nhiều board mạch này được thiết kế sử dụng chip fake. Bài viết này sẽ trình bày các vấn đề gặp phải và cách khắc phục giúp các bạn có thể sử dụng STM32CubeIDE để lập trình, debug được board mạch STM32F103 BluePill.Continue Reading