I. Những phần mềm cần thiết cần cài đặt để học lập trình với stm32:

  • Cài KeilC V5 cho stm.
  • Cài đặt thư viện chuẩn cho ARM.
  • Cài đặt driver cho stlink các driver tương ứng cho mạch nạp.

II. Tạo thư mục GPIO và 2 thư mục con trong thư mục GPIO:

  • Lib: chứa thư viện chuẩn của nhà sản xuất.
  • Project: chứa file viết code, ngắt và các file tạo ra khi chạy chương trình. Tạo thư mục con keil trong thư mục project(thư mục này sẽ chứa các file sinh ra khi biên dịch chương trình).

III. Copy các file cần thiết vào trong thư mục GPIO:

  • Copy 2 thư mục CMSIS và STM32F10x_StdPeriph_Driver trong đường dẫn STM32F10x_StdPeriph_Lib_V3.5.0\Libraries trong file STM32F10x_StdPeriph_Lib_V3.5.0 vào thư mục lib. File này mình đã đính kèm ở dưới.
  • Copy các file main, stm32f10x_conf, stm32f10x_it.c, stm32f10x_it.h, system_stm32f10x vào thư mục project với đường dẫn là STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template trong file STM32F10x_StdPeriph_Lib_V3.5.0.

IV. Tạo project mới cho stm32:

  1. Chọn Project -> New Uvision project. Trỏ đến thư mục keil trong thư mục GPIO vừa tạo đặt tên project là GPIO(tên này tùy ý) -> bấm Save.

2. Cửa sổ mới được mở ra để cho chúng ta chọn chip. ở đây mình sử dụng stm32f103c8t6 nên sẽ chọn MCU là STM32F103C8 ->nhấn OK.

Cửa sổ manage run hiện ra. Chọn OK để kết thúc.

3. Mở cửa sổ manage project items bằng cách kích vào biểu tượng hoặc vào đường dẫn sau : project -> manage -> project items. Chỉnh sửa tên projects target và groups bằng tên tùy ý hoặc như trong hình. Add các file đã copy ở lúc đầu vào các groups. Chú ý là lib chứa các file thư viện và user chứa các file chương trình.

  • Groups lib chứa các file: core_cm3.c;misc.c;stm32f10x_gpio.c;stm32f10x_rcc.c; startup_stm3210x_md.s.
  • File core_cm3.c nằm trong đường dẫn GPIO\lib\CMSIS\CM3\CoreSupport.
  • File startup_stm3210x_md.s nằm trong đường dẫn GPIO\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm và lưu ý là đuôi md.s hay hd.s tùy thuộc vào loại MCU mà ta sử dụng. Đuôi file này là đuôi .s nên files of type phải để là all files.
  • File misc.c;stm32f10x_gpio.c;stm32f10x_rcc.c nằm trong thư mục GPIO\lib\STM32F10x_StdPeriph_Driver\src. Nếu sử dụng UART hay ADC… thì cần phải add thêm các thư viện đó cũng nằm trong thư mục này.
  • Groups user chứa các file sau: main.c;stm32f10x_it.c; system_stm32f10x.c.

4. Vào tab options for target bằng cách click vào biểu tượng hoặc đường dẫn sau project -> Options for target. Chỉnh sửa các tab theo các bước sau:

  • ở tab options : trong thẻ Device kiểm tra MCU đã chọn là đúng loại MCU mình sẽ sử dụng hay chưa.
  • ở tab target click vào ô Use microLIB.

LƯU Ý: hàng chữ STM32F10X_MD tùy thuộc vào dòng STM32 sử dụng, tùy thuộc vào bộ nhớ mà có các kí hiệu LD, MD, HD… khác nhau. Các bạn có thể tìm hiểu trong reference manual trang 158 trong phần GPIO.

  • ở tab debug chọn st-link debug nếu bạn sử dụng mạch nạp st-link, chọn các ô tương ứng nếu dùng debug.
  • ở tab Utilities click setting.

Thẻ flash download chọn reset and run.

Thẻ debug chọn Port : SW và thấy đã nhận stlink (ở đây mình sử dụng mạch nạp stlink V2).

5. Mở file main lên và xóa hết nội dung, chỉ chừa lại nội dung như trong hình.

Kích vào biểu tượng build nếu build ở lần đầu tiên và rebuild(phím tắt là F7) cho các lần tiếp theo. Xem kết bảng thông báo build output nếu không xuất hiện 0 lỗi tức là đã thành công.

Khi nạp code thì bạn chỉ cần nhấn vào biểu tượng Load hoặc vào Flash->Load Phím tắt là F8.

Chúc các bạn thành công!

Trao đổi học tập

Comments