Chức năng Lowpower mode của MCU STM32F103C8T6
MCU STM32F103C8T6, MCU này có 2 miền điện áp: Một là miền 1.8V cấp cho: Core, Memory, Digital Peripheral; hai là miền Vdd cấp cho: Những ngoại vi và chức năng còn lại của MCU.Continue Reading
MCU STM32F103C8T6, MCU này có 2 miền điện áp: Một là miền 1.8V cấp cho: Core, Memory, Digital Peripheral; hai là miền Vdd cấp cho: Những ngoại vi và chức năng còn lại của MCU.Continue Reading
Bộ nhớ Flash is được tổ chức như là 1 khối chính (main block) và 1 khối thông tin (information block) lên đến 64 Kb (hoặc 128 Kb) chia thành 128 pages, mỗi page 1 Kbytes (medium-density devices).Continue Reading
Đầu tiên chúng ta sẽ kiểm tra hiện tại chúng ta nhận kí tự ngắt ở UART nào. Nếu biến đếm kí tự = 0, thì reset lại mảng đệm bằng cách gán từng phần tử trong mảng kí tự ‘\0’ Tiếp theo, kiểm tra kí tự vừa nhận đượcContinue Reading
Việc nhận dữ liệu liên tục trong vòng while như vậy khiến cho MCU không thể làm được việc khác được. Vì vậy, chúng ta sẽ sử dụng chức năng ngắt UART để nhận dữ liệu. Ở trong vòng lập while(1) chúng ta sẽ làm nhiệm vụ cố định nàoContinue Reading
Window Watchdog (WWDG) là một watchdog timer nâng cao, dùng để phát hiện nếu có sự xuất hiện của một lỗi phần mềm nào đó. Không giống như Independent Watchdog Timer (IWDG), bộ đếm của WWDG phải được reload (refreshed) trong khoảng thời gian window giới hạn. Nếu reload trước hoặc sau khoảng thời gian đó sẽ dẫn đến reset MCU.Continue Reading
Các sản phẩm khi sử dụng thực tế yêu cầu có sự ổn định cao trong suốt quá trình sử dụng. Một hệ thống có thể bị treo từ rất nhiều nguyên nhân như chương trình code chưa chặt chẽ, ngoại vi không phản hồi, nhiễu, tràn bộ nhớ… Lúc này các bạn cần khởi động lại hệ thống để mọi thứ có thể chạy lại từ đầu, kết hợp với việc báo lỗi để chúng ta tìm ra nguyên nhân và chỉnh sửa kịp thời. Watchdog timer là một chức năng của vi điều kiển giúp các bạn có thể phát hiện ra hệ thống bị treo và thực hiện reset.Continue Reading
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M] Bước 1: Tạo project trên CubeMX Bước 2: Cấu hình chân nạp code Bước 3: Chọn mode Asynchorous cho UART1 và cấu hình UART: Set tốc độ baudrate thông dụng là 9600 Bước 4: Chọn ProjectContinue Reading
UART – Universal asynchronous receiver transmitter là bộ truyền nhận nối tiếp bất đồng bộ. UART là một ngoại vi cơ bản trong chip STM32F103C8T6 thường được dùng trong các quá trình giao tiếp với các loại module như: Zigbee, Bluetooth, Wifi… [HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32,Continue Reading
Nhiều bạn lập trình nhúng khi phát triển hoặc debug chương trình thường có suy nghĩ sử dụng các hàm trong thư viện chuẩn của C như printf() để gửi dữ liệu thông qua giao tiếp UART đến máy tính và hiển thị trên các phần mềm như Terminal, Hercules hoặc giao tiếp với các module khác…Nếu có thể sử dụng được hàm printf() thì giao tiếp UART sẽ trở nên đơn giản và quen thuộc hơn. Vậy làm thế nào để có thể sử dụng hàm printf() trong Keil C?Continue Reading
Trong các ứng dụng vi điều khiển- hệ thống nhúng, bộ chuyển đổi tương tự-số (ADC) là 1 thành phần rất quan trọng để có thể chuyển đổi các dữ liệu dạng analog từ môi trường (nhiệt độ, độ ẩm, độ sáng,…) sang dạng digital để vi điều khiển có thể xử lý được. STM32F103C8 có tích hợp sẵn các bộ chuyển đổi ADC với độ phân giải 12bit. Có 12 kênh cho phép đo tín hiệu từ 10 nguồn bên ngoài và 2 nguồn nội bên trong. Trong bài này, chúng ta sẽ cùng tìm hiểu về chế độ đơn kênh với STM32, sử dụng Interrupt để báo quá trình chuyển đổi hoàn tất.Continue Reading