Hướng dẫn xử lý chuỗi trong lập trình vi điều khiển (P1)

Khi lập trình vi điều khiển, nhiều trường hợp chúng ta cần làm việc với các dữ liệu ở dạng chuỗi ký tự, ví dụ như đóng gói các dữ liệu thành một chuỗi để lưu trữ hoặc gửi đi, nhận dữ liệu, bóc tách dữ liệu từ các bản tin nhận được để sử dụng. Xử lý chuỗi là một chủ đề quan trọng khi lập trình vi điều khiển, nhất là khi các hệ thống nhúng, IoTs ngày càng phát triển dẫn đến việc trao đổi dữ liệu giữa các thiết bị ngày càng nhiều. Xử lý chuỗi là một thử thách với rất nhiều bạn sinh viên / kỹ sư phần mềm nhúng – những người mới bắt đầu. Với tài liệu này, các kiến thức cơ bản liên quan đến khai báo, lưu trữ, xử lý chuỗi sẽ được tổng hợp lại và được mô tả, hướng dẫn thông qua những ví dụ, tình huống cụ thể, thường gặp.

Trong chuỗi bài viết này, mình sẽ giới thiệu đến các bạn một số khái niệm, các hàm chức năng thường sử dụng và hướng dẫn ví dụ thực hành xử lý chuỗi trên vi điều khiển STM32.

Phần 1. Một số khái niệm và các hàm chức năng thường gặp 

1. Ký tự và chuỗi (Character & string)

Ký tự (character) là thành phần cơ bản nhất của một văn bản gồm những chữ cái, chữ số và các ký hiệu được sắp xếp với nhau tạo thành các chuỗi ký tự. Ký tự được sử dụng trong mã chương trình gọi là hằng ký tự, mỗi hằng ký tự tương ứng với mỗi giá trị số nguyên trong bảng mã ASCII, hằng ký tự thì được đặt trong cặp dấu nháy đơn ‘’. Ví dụ như hằng ký tự ‘a’ có giá trị nguyên tương ứng là 97, ký tự ‘A’ có giá trị 65, ký tự ‘0’ có giá trị 48 trong bảng mã ASCII. Một số hằng ký tự đặc biệt thường được sử dụng xuống dòng (‘n’), về đầu hàng (‘r’), dấu tab (‘t’), in dấu (‘\’), in dấu “ (‘”’), in dấu ‘ (‘’’), in dấu % (%%),…

Chuỗi (string) là một tập hợp của các ký tự được kết thúc bởi ký tự NULL (‘�’). Trong ngôn ngữ lập trình, chuỗi bao gồm các ký tự hằng được gọi là chuỗi hằng, các chuỗi hằng thì được đặt trong cặp dấu ngoặc kép. Có thể truy cập đến một chuỗi thông qua một con trỏ (pointer) trỏ đến ký tự đầu tiên của chuỗi. Giá trị của một chuỗi chính là địa chỉ của ký tự bắt đầu của chuỗi đó. Ví dụ chuỗi: “Lap trinh xu ly chuoi”,  “Vi dieu khien 32 – bit”, “TAPIT Community”

Khi lập trình vi điều khiển, nhiều trường hợp chúng ta cần làm việc với các dữ liệu ở dạng chuỗi ký tự, ví dụ như đóng gói các dữ liệu thành một chuỗi để lưu trữ hoặc gửi đi, nhận dữ liệu, bóc tách dữ liệu từ các bản tin nhận được để sử dụng. Xử lý chuỗi là một chủ đề quan trọng khi lập trình vi điều khiển, nhất là khi các hệ thống nhúng, IoTs ngày càng phát triển dẫn đến việc trao đổi dữ liệu giữa các thiết bị ngày càng nhiều. Xử lý chuỗi là một thử thách với rất nhiều bạn sinh viên / kỹ sư phần mềm nhúng – những người mới bắt đầu. Với tài liệu này, các kiến thức cơ bản liên quan đến khai báo, lưu trữ, xử lý chuỗi sẽ được tổng hợp lại và được mô tả, hướng dẫn thông qua những ví dụ, tình huống cụ thể, thường gặp.