Lập trình STM32 trên Linux với SystemWorkbench

Hôm qua mình có đi hội thảo bên ST thì họ có hướng dẫn tool mới để lập trình, theo thông tin mình xem thì có thể sử dụng trên mọi nền tảng và dùng cũng không khó lắm nên chia sẻ giới thiệu cho mọi người luôn.

Update 2020: bài này đã bị outdate và tool mới được thay thế là STM32CubeIDE nha anh em

Chuẩn bị

Để cài được STM32CubeMX phải có Java (JRE bản 1.8.0 hoặc bản mới hơn), nếu máy bạn chưa có thì cài thêm vào nhé.

Cài đặt

Với bản của window thì các bước cài khá đơn giản chỉ việc next sau đó là open. Với ubuntu thì hơi vất vả hơn chút nên trong bài viết này mình sẽ tập trung về phần cài cho ubuntu.

Bước 1: Cài một số thư viện C

$ sudo apt-get install libc6:i386 lib32ncurses5

Bước 2: Cần phải chmod và cài gksu (nếu có lỗi)

$ chmod a+x install_sw4stm32_linux_64bits-v2.0.run
$ sudo apt install gksu
$ ./install_sw4stm32_linux_64bits-v2.0.run

Bước 3: Sau khi cài đặt xong thì vào mục Home/ AC6/ SystemWorkbench để mở phần mềm.

Bước 4: Cập nhật phần mềm chọn Help-> Check for Update

Bước 5: Cài đặt CubeMX bằng cách giải nén thư mục CubeMX đã tải

Bước 6: Chạy lệnh để cài CubeMX

$ java -jar SetupSTM32CubeMX-4.20.1.exe

Bước 7: Mở CubeMX và thêm thư viện, có 2 cách là tải thư viện online hoặc thêm thư viện offline bằng cách Chọn From local, sau đó trỏ thư mục, ở đây mình lấy hình thư viện L4 minh họa, bạn có thể chọn các thư viện khác bằng cách tick chọn thư viện tương ứng

Bước 8: Tạo project chớp tắt LED với CubeMX

Chọn new project, chọn chip là STM32F407VGTX, sau đó ok sẽ hiện ra bảng sau

Tiếp tục click vào PD14 chọn Output_PIN để bật tắt LED trên chân PD14.

Cấu hình clock 168MHz.

Cấu hình GPIO

Cấu hình Output chọn Toolchain là SW4TM32 và Code Generator (Project->Setting)

Bước 9: Generate code để import vào System Workbench bằng cách chọn Project->Generate Code hoặc chọn biểu tượng răng hình bánh xe

Bước 10: Import code bằng cách chọn File/Import, chọn Existing Project và trỏ tới đường dẫn của CubeMX vừa sinh ra

Bước 11: Chỉnh sửa thêm trong code file main.c để blink LED có sẵn trên Kit F4 ở chân PD14

while (1)
{
/* USER CODE END WHILE */
 
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_14);
HAL_Delay(1000);
}
/* USER CODE END 3 */

Bước 13: Chỉnh cấu hình build, do SW mặc định build chỉ dùng 1 core nên tốc độ khá chậm, mình cần phải chỉnh lại để tăng tốc độ build lên, bạn chuột phải vào project, chọn Properties

Bước 14: Nạp chương trình xuống kit chọn File > Target > Program Chip

Để không phải ấn nút reset thì bạn chọn reset after program nhé

Lưu ý: Nếu khi nạp xuống mà không có hiện tượng gì nữa thì bạn ấn nút reset hoặc rút cáp ra cắm lại sẽ được nhé

Tạm kết

Vậy là mình đã hướng dẫn sơ bộ các bước để các bạn có thể cài đặt, cấu hình và sử dụng tool system workbench của STM. Giờ thì các bạn có thể yên tâm thử nghiệm tiếp với các project  to hơn rồi :D. Nếu bạn để ý thì tool này của STM khá giống với tool CCS của TI, 2 cái đều miễn phí và được support từ hãng khá tốt. Nếu bạn có vấn đề gì trong quá trình cài đặt có thể hỏi ở đây, mình sẽ giúp bạn cách khắc phục 😀