Sau khi làm kế hoạch thâu tóm anh TrueSTUDIO và AC6 SW thì anh ST thấy có vẻ như nhiều tool quá, khách hàng người dùng cũng chóng mặt, IDE thì lắm mà AC6 thì tuổi gì sánh được với TrueSTUDIO, thêm vào nữa con hàng CubeMX thơm ngon béo bở gen code như điện, thôi gộp hết lại làm một, thế là STM32CubeIDE ra đời, tool mới được khuyên dùng cho việc development các thứ trên trời dưới biển với STM. Vì là tool mới của STM32, vừa free vừa thơm bơ nên mình tranh thủ tìm hiểu STM32CubeIDE xem thế nào để làm tut cho anh em xem chơi. Mời anh em theo dõi

Chuẩn bị

Để sử dụng tool này thì việc đầu tiên là tải phần mềm, bạn có thể tải nó tại đây. Follow theo các bước của họ rồi quất thôi ae, dăm ba cái cài phần mềm ez bánh mì mà. Hiện tại mình đang sử dụng bản 1.3.0, board thì dùng board F1 có sẵn, F4 hay board khác thì tương tự nha

Cài đặt

Cài đặt STM32CubeIDE bằng cách tải về giải nén và cài thôi

Nếu anh em có lỗi lầm không tải được gói package, ko cài được phần mềm thì lời khuyên đầu tiên là cài lại java nhé.

Cấu hình

Để bắt đầu với STM32CubeIDE thì ban đầu sẽ hiện cửa sổ workspace, hàng làm dựa trên Eclipse nên chắc kèo là vừa nặng vừa lâu rồi, riêng mình ko thích dùng mấy thằng liên quan tới Eclipse lắm nhưng cuộc đời thật lắm trái ngang, ghét gì thì được nấy :)), click next thôi các bạn, chọn default đi cho khỏe.

Select File > New > STM32 Project. Chọn vào Target Selection, chọn MCU/MPU Selector và tìm chip STM32F1Cx, next và uống trà chờ đợi thôi

Sau khi xong xuôi, cửa sổ CubeMX sẽ hiện lên cho chúng ta cấu hình chân cẳng. Mặc định thì chưa được chọn gì hết. Tất cả đã sẵn sàng cho việc code.

CubeMX thì các bạn đã biết rồi, hàng siêu khủng, giao diện thân thiện dễ cấu hình ngoại vi và các pin. Khi ấn vào pin nào thì pin đó hiện ra thông tin đầy đủ, ấn vào thì có thể enable được pin lên. Thôi chơi đại cho chân PC13 lên làm GPIO_Output để blink LED nào

Lưu ý đặc biệt quan trọng!
Vào Categories > System Core > SYS, chỉnh mode Debug là Serial Wire nếu anh em dùng ST-Link là mạch nạp, nếu dùng JTAG thì ae chọn JTAG tương ứng nha, ae nào ko chọn thì sẽ bị hiện tượng lock chip, ko debug, k nạp được gì hết, lúc đó ngồi khắc phục sự cố đuối luôn

Ấn vào File > Save hoặc Ctrl + S thì sẽ có thông báo tự gen code. Yes thôi

Nếu anh em có lỡ quên bước trên thì mời mọi người xem lại bài viết Cách khắc phục lỗi khi nạp chip để xử lý sự cố

Sau khi gen code xong, ấn vào Src > main.c bên trái để xem code thôi anh em. Kéo xuống hàm main là thấy chương trình chính rồi

Chúng ta sẽ thấy một số đoạn code bắt đầu bằng BEGIN và kết thúc bằng END, chỗ này là user code, nghĩa là chúng ta sẽ nhét code của mình vào đây, mục đích để làm gì ? Để sau này có gen code lại, cấu hình thêm chân này chân kia thì code của mình vẫn còn nguyên, ko bị mất đi. Ngày xưa làm CubeMX có một số bạn thấy code thừa ngứa mắt xóa hết, sau này ko có kế thừa lại được, hoặc lại phải chỉnh sửa lại, rất là tốn công sức cho những việc ko cần thiết

Chương trình thì vì làm quen tool nên chơi cái dễ test thôi, nhét thẳng toggle vào trong while loop

HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(1000);

Toàn bộ project mình up lên github cho ae nào gặp khó khăn có cái tham khảo, link tại đây nha ae

Để biết được hàm nào làm chức năng gì thì không có tài liệu nào ngon hơn bằng HAL documentation, thường nó có sẵn từ các gói CubeMX được tải về máy ae rồi

Kéo xuống thì ae sẽ thấy đủ các dòng, từ F0, G0, F1, F4,… thích cái nào chọn cái đó tải thôi.Mọi người lưu ý là các hàm HAL hầu như là giống nhau với tất cả các part STM32. Do đó rất dễ để chúng ta có thể đưa code hiện tại của mình lên các dòng khác nhau, ví dụ viết code cho F1 nhưng port lên F4 chạy vẫn vô tư

Flash và debug

Lưu chương trình lại sau đó chọn Project > Build Project. Code của chúng ta sẽ được compile và link tới library.

Nếu bạn muốn nạp phát ăn ngay thì ấn chuột phải vào project, Run as > STM32 MCU C/C++ Application

Nếu muốn debug thì chọn Run > Debug As > STM32 MCU C/C++ Application để nạp chương trình.
Cửa sổ thông báo hiện lên, ta lại chọn mặc định tiếp, cứ có gì thì next thôi ko phải sợ. Nhìn lên thanh toolbar có nút Resume button, ấn vô là thấy đèn chớp nháy ầm ầm.

Dưới đây là thông báo khi build và nạp thành công

Debug

Nếu bạn double click chuột vào dòng code là bạn có thể thêm breakpoint rồi, sau khi thêm ấn debug lại thì chương trình sẽ nhảy tới line mà bạn muốn debug. Bạn có thể dùng Step Into, Step Over, and Step Return để nhảy tới nhảy lui, nhảy vào nhảy ra các function. Còn lại quẩy thôi 😀

Kết

Ok vậy là đã tìm hiểu xong tool CubeIDE của STM rồi, hàng rẻ, xài hơi nặng, được cái free, hỗ trợ nhiều thứ, build code size lớn, với các bạn bị dính tới license thì đây đúng là lựa chọn không thể tốt hơn, riêng các bạn sinh viên thích nghiên cứu học hỏi thì đây cũng là một lựa chọn tốt. Còn lại xin nhường phần trải nghiệm cho anh em

Tham khảo [1][2]