Hướng dẫn cài keil c Informational năm 2024

Bạn đang xem nội dung tài liệu Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Trong phạm vi nhỏ của bài hướng dẫn thì mình chỉ đề cập tới vấn đề là làm sao sử dụng phần mềm Keil C để biên dịch 1 file lập trình C thành file *.hex . Còn vấn đề giải thuật và cấu trúc của một file lập trình bằng ngôn ngữ C như thế nào thì sẽ được cập nhật sau. Trong bài này thì mình dùng một đoạn code đơn giản nhất là cho nhấp nháy 1 port 0 của vxl 89C51 bằng ngôn ngữ C rồi biên dịch ra file hex. Phiên bản mình đang dùng: Keil C V2.4 Sau khi bạn cài đặt xong thì sẽ có đường dẫn như sau: C:\Program Files\Keil Compiler. Và trên Destop sẽ có Icon của Keil C . Sau đó bạn khởi động chương trình Keil C thì sẽ thấy giao diện như sau: Tiếp theo bạn nhấn nút Project rồi chọn New Project… Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Trong ỗ đĩa D mình đã tạo sẵn Folder tên “Bai tap” dùng để lưu dự án C trong đó. Sau khi chọn New Project… thì cửa sổ Create New Project xuất hiện. Bạn hãy nhập tên dự án. Mình chọn tên dự án là “Nháy Led” rồi nhấn nút Save Sau đó cửa sổ Select Device for Target hiện ra. Bạn hãy chọn “Data base” là “Atmel” rồi tìm họ IC “AT89C51” rồi nhấn vào nút OK Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Máy tính sẽ hỏi bạn có muốn copy đoạn mã khởi động không thì nhấn No Tiếp theo bạn nhấn vô File chọn New để mở cửa sổ soạn thảo lập trình. Sau khi chọn thì sẽ thấy xuất hiện cửa sổ Text1 như hình dưới đây Sau đó bạn vô menu File chọn Save As thì thấy cửa Save As hiện ra. Bạn hãy đặt tên cho file lập trình( nhớ đặt là *.C ). Ở đây mình đặt là “Nhay led.C” rồi chọn Save Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Tiếp theo trong cửa sổ Project Workspace thì bạn nhấp đúp chuột vào “Target 1” rồi nhấp chuột fải vào “Source Group 1” chọn Add Files to Group ‘Source Group 1’ Trong cửa sổ Pop up hiện ra sau đó thì bạn chọn tên file lập trình đã lưu khi nãy là “Nhay Led.C” rồi nhấn nút Add Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Lúc này cửa sổ Project Workspace đã có thêm thư mục con xuất hiện là “Nhay Led.C”. Bây giờ ta có thể nhấp đúp chuột vào file Nhay Led.C để bắt đầu lập trình Sau đây là một đoạn code đơn giản có dùng delay để làm nhấp nháy từ mức cao sang thấp của Port 0 của VXL 89C51

include sfr AN = 0x80; //------ void delays(unsigned long n)//Ham delay giay, nhap(2)=1s { unsigned char i; unsigned int j; for (i=n;i>0;i--) { for (j=56550;j>0;j--); } } //------ void main(void)// chuong trinh chinh { while(1) { AN = 0x00; delays(4); AN = 0xFF; delays(4); }; } Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Lúc này thì giao diện màn hình soạn thảo sẽ như sau Sau khi đã soạn thảo đoạn code xong thì các bạn chú ý ở kế bên cửa sổ Target 1 có nút nhỏ hình cây đũa. Bạn hãy nhấn vào đó. Sau khi nhấn thì cửa sổ Options for Target ‘Target 1’ sẽ hiện ra. Tại thẻ Target thì bạn hãy sửa thông số Xtal(MHz) từ 24 thành 11.0592 để hàm Delay chạy đúng ý đồ lập trình Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Sau đó bạn bật sang thẻ Output rồi đánh dấu vào chỗ Create HEX File rồi nhấn nút OK Sau khi đã hoàn tất công đoạn chỉnh thông số thì bạn nhấp chuột fải vào Nhay Led.C rồi chọn Build target (phím tắt là F7) để bắt đầu quá trình biên dịch Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Nếu bạn lập trình sai hoặc thiếu thì lúc biên dịch sẽ báo lỗi. Ví dụ ở đây là mình ghi thiếu 1 dấu ngoặc để kết thúc vòng lặp For thứ 2. Chúng ta sẽ dựa vào thông báo lỗi để mà tiến hành sửa lỗi. Và sau khi mình sửa lỗi thì máy sẽ hiện thông báo là biên dịch thành công Hướng dẫn sử dụng phần mềm Keil C Kamiya Satoshi www.here.is/codientu Phone: 0919 5678 57 Khoa Cơ Điện Tử- Đại Học Công Nghệ Sài Gòn Lúc này ta vào D:/Bai tap thì sẽ thấy file Nhay Led.hex xuất hiện. Và bây giờ các bạn có thể dùng mạch nạp để nạp chương trình vào IC rùi đó. Hoặc cũng có thể kết hợp với Proteus để chạy mô phỏng thử xem. Bảo đảm là rất thú vị CHÚC CÁC BẠN THÀNH CÔNG.

Bộ vi điều khiển STM32 sử dụng kiến trúc ARM Cortex M đang dần trở nên phổ biến và được sử dụng trong nhiều ứng dụng vì tính năng, chi phí và hiệu suất của nó. Chúng tôi đã lập trình STM32F103C8 bằng Arduino IDE trong các hướng dẫn trước đây của chúng tôi. Lập trình STM32 với Arduino IDE rất đơn giản, vì có rất nhiều thư viện có sẵn cho các cảm biến khác nhau để thực hiện bất kỳ tác vụ nào, chúng ta chỉ cần thêm các thư viện đó vào chương trình. Đây là một thủ tục dễ dàng và bạn có thể không cần tìm hiểu sâu về bộ xử lý ARM. Bây giờ chúng ta đang bước vào cấp độ lập trình tiếp theo gọi là lập trình ARM. Bằng cách này, chúng tôi có thể không chỉ cải thiện cấu trúc code mà còn có thể tiết kiệm dung lượng bộ nhớ bằng cách không sử dụng các thư viện không cần thiết.

STMicroelectronics đã giới thiệu một công cụ có tên STM32Cube MX , tạo code cơ bản theo các thiết bị ngoại vi và board STM32 được chọn. Vì vậy, chúng ta không cần phải lo lắng về việc code hóa cho các trình điều khiển và thiết bị ngoại vi cơ bản. Hơn nữa code được tạo này có thể được sử dụng trong Keil uVision để chỉnh sửa theo yêu cầu. Và cuối cùng, code được ghi vào STM32 bằng lập trình ST-Link từ STMicroelectronics.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách lập trình STM32F103C8 bằng Keil uVision & STM32CubeMX bằng cách thực hiện một dự án đơn giản là giao tiếp với một nút ấn và LED với board STM32F103C8 Blue Pill . Chúng tôi sẽ tạo code bằng STM32Cube MX sau đó chỉnh sửa và tải code lên STM32F103C8 bằng Keil uVision. Trước khi đi vào chi tiết, trước tiên chúng ta sẽ tìm hiểu về lập trình viên ST-LINK và công cụ phần mềm STM32CubeMX.

ST-LINK V2

ST-LINK / V2 là một trình gỡ lỗi trong mạch và lập trình cho các họ vi điều khiển STM8 và STM32. Chúng tôi có thể tải code lên STM32F103C8 và các bộ vi điều khiển STM8 & STM32 khác bằng ST-LINK này. Các giao diện mô-đun dây đơn (SWIM) và JTAG / gỡ lỗi dây nối tiếp (SWD) được sử dụng để giao tiếp với bất kỳ vi điều khiển STM8 hoặc STM32 nào trên board ứng dụng. Vì các ứng dụng STM32 sử dụng giao diện USB có tốc độ đầy đủ để giao tiếp với các môi trường phát triển tích hợp Atollic, IAR, Keil hoặc TASKING, vì vậy chúng tôi có thể sử dụng phần cứng này để lập trình bộ vi điều khiển STM 8 & STM32.

Hướng dẫn cài keil c	Informational năm 2024

Trên đây là hình ảnh của ST-LINK V2 dongle từ STMicroelectronics hỗ trợ đầy đủ giao diện gỡ lỗi STM32 SWD, giao diện 4 dây đơn giản (bao gồm cả nguồn), nhanh và ổn định. Nó có nhiều màu sắc. Thân máy được làm từ hợp kim nhôm. Nó có LED màu xanh lam vì nó được sử dụng để quan sát trạng thái hoạt động của ST-LINK. Tên chân được đánh dấu rõ ràng trên vỏ như chúng ta có thể thấy trong hình trên. Nó có thể được giao tiếp với phần mềm Keil nơi chương trình có thể được flash vào bộ vi điều khiển STM32. Vì vậy, hãy theo dõi hướng dẫn này để biết cách lập trình ST-LINK này để lập trình vi điều khiển STM32 . Hình ảnh bên dưới hiển thị các chân của mô-đun ST-LINK V2.

Hướng dẫn cài keil c	Informational năm 2024

Lưu ý: Khi kết nối ST-Link với máy tính lần đầu tiên. Cần cài đặt trình điều khiển thiết bị. Trình điều khiển thiết bị có thể được tìm thấy trong liên kết này theo hệ điều hành của bạn.

STM32CubeMX

Công cụ STM32CubeMX là một phần của STMicroelectronics STMCube. Công cụ phần mềm này giúp cho việc phát triển dễ dàng bằng cách giảm giai đoạn phát triển, thời gian và chi phí. STM32Cube bao gồm STM32CubeMX là một công cụ cấu hình phần mềm đồ họa cho phép tạo code C bằng cách sử dụng trình hướng dẫn đồ họa. Code đó có thể được sử dụng trong các môi trường phát triển khác nhau như keil uVision, GCC, IAR, v.v. Bạn có thể tải xuống công cụ này từ liên kết sau .

STM32CubeMX có các tính năng sau

  • Chân gỡ lỗi
  • Trợ giúp thiết lập xung
  • Một nguồn
  • Một tiện ích thực hiện cấu hình ngoại vi MCU như chân GPIO, USART, v.v.
  • Một tiện ích thực hiện cấu hình ngoại vi MCU cho các ngăn xếp phần mềm trung gian như USB, TCP / IP, v.v.

Những phần cần thiết

  1. Phần cứng
  2. Board STM32F103C8 màu xanh
  3. ST-LINK V2
  4. Nút nhấn
  5. LED
  6. Breadboard
  7. Dây dẫn
  8. Phần mềm
  9. Công cụ tạo code STM32CubeMX ( Liên kết)
  10. Keil uVision 5 ( liên kết )
  11. Trình điều khiển cho ST-Link V2 ( liên kết )

Sơ đồ mạch và kết nối

Dưới đây là sơ đồ mạch để kết nối một ED với boardSTM32 chỉ bằng một nút nhấn.

Hướng dẫn cài keil c	Informational năm 2024

Kết nối giữa ST-LINK V2 & STM32F103C8

Ở đây, board STM32 Blue Pill được cấp nguồn từ ST-LINK được nối với cổng USB của máy tính. Vì vậy, chúng ta không cần phải cấp nguồn cho STM32 riêng biệt. Board dưới đây cho thấy kết nối giữa board ST-Link và board Blue Pill.

STM32F103C8

ST-Link V2

GND

GND

SWCLK

SWCLK

SWDIO

SWDIO

3V3

3,3V

LED & Nút ấn

LED được sử dụng để biểu thị đầu ra từ board Blue Pill khi nhấn nút ấn. Cực dương của LED được nối với chân PC13 của board Blue Pill và cực âm được nối đất.

Một nút ấn được kết nối để cung cấp đầu vào cho chân PA1 của board Blue Pill. Chúng ta cũng phải sử dụng điện trở có giá trị 10k vì chân có thể nổi mà không có bất kỳ đầu vào nào khi nút được nhả ra. Một đầu của nút ấn được nối với đất và đầu kia nối đến chân PA1 và đầu còn lại của điện trở 10k cũng được nối với nguồn 3,3V của board Blue Pill.

Hướng dẫn cài keil c	Informational năm 2024

Tạo và ghi chương trình vào STM32 bằng Keil uVision và ST-Link

Bước 1: – Trước tiên hãy cài đặt tất cả các trình điều khiển thiết bị cho ST-LINK V2, công cụ phần mềm STM32Cube MX & Keil uVision và cài đặt các gói cần thiết cho STM32F103C8.

Bước 2: – Bước thứ hai là Open >> STM32Cube MX

Bước 3: – Sau đó bấm vào New Project

Hướng dẫn cài keil c	Informational năm 2024

Bước 4: – search & select nhập STM32F103C8

Hướng dẫn cài keil c	Informational năm 2024

Bước 5: – Bây giờ bản phác thảo chân ra của STM32F103C8 xuất hiện, ở đây chúng ta có thể đặt cấu hình chân. Chúng ta cũng có thể chọn chân trong phần thiết bị ngoại vi theo dự án của chúng ta.

Hướng dẫn cài keil c	Informational năm 2024

Bước 6: – Bạn cũng có thể nhấp trực tiếp vào code chân và một danh sách xuất hiện, bây giờ chọn cấu hình chân yêu cầu.

Hướng dẫn cài keil c	Informational năm 2024

Bước 7: – Đối với dự án của chúng tôi, chúng tôi đã chọn PA1 là GPIO INPUT, PC13 làm GPIO OUTPUT & SYS gỡ lỗi là SERIAL WIRE, ở đây chỉ có chúng tôi kết nối các chân ST-LINK SWCLK & SWDIO. Các chân được chọn và cấu hình xuất hiện trong khung màu XANH LỤC . Bạn có thể tham khảo hình dưới đây.

Hướng dẫn cài keil c	Informational năm 2024

Bước 8: – Tiếp theo trong tab Configuration, chọn GPIO để đặt cấu hình chân GPIO cho các chân chúng tôi đã chọn.

Hướng dẫn cài keil c	Informational năm 2024

Bước 9: – Tiếp theo trong hộp cấu hình chân này, chúng tôi có thể configure User Label cho các chân chúng tôi đang sử dụng, đó là tên chân do người dùng xác định.

Hướng dẫn cài keil c	Informational năm 2024

Bước 10: – Sau đó bấm vào Project >> Generate Code.

Hướng dẫn cài keil c	Informational năm 2024

Bước 11: – Bây giờ hộp thoại cài đặt dự án xuất hiện. Trong hộp này, chọn tên và vị trí dự án của bạn và chọn môi trường phát triển. Chúng tôi đang sử dụng Keil, vì vậy hãy chọn MDK-ARMv5 làm IDE.

Hướng dẫn cài keil c	Informational năm 2024

Bước 12: – Tiếp theo trong tab Code Generator , chọn Copy only the necessary library files , sau đó bấm OK.

Hướng dẫn cài keil c	Informational năm 2024

Bước 13: – Bây giờ hộp thoại tạo code xuất hiện. Chọn Open Project để mở code dự án tự động được tạo trong Keil uvsion.

Hướng dẫn cài keil c	Informational năm 2024

Bước 14: – Công cụ Keil uVision mở ra với code được tạo của chúng tôi trong STM32CubeMx với cùng tên dự án với thư viện cần thiết và code được định cấu hình cho các chân mà chúng tôi đã chọn.

Hướng dẫn cài keil c	Informational năm 2024

Bước 15: – Bây giờ chúng ta chỉ cần thêm logic để thực hiện một số hành động tại đầu ra của LED (chân PC13) khi nhấn và nhả nút ở đầu vào GPIO (chân PA1). Vì vậy, chọn chương trình main.c để thêm code .

Hướng dẫn cài keil c	Informational năm 2024

Bước 16: – Bây giờ thêm code trong vòng lặp while (1) , xem hình ảnh bên dưới nơi tôi đánh dấu phần đó để chạy code.

while (1) > { > if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => phát hiện nút được nhấn > { > HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Để làm cao đầu ra khi nút pressesd > } >
khác > { > HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Để tạo đầu ra Thấp khi nhấn nút > } > } >

Hướng dẫn cài keil c	Informational năm 2024

Bước 17: – Sau khi chỉnh sửa xong code, nhấp vào biểu tượng Options for Target trong tab debug, chọn ST-LINK Debugger

Hướng dẫn cài keil c	Informational năm 2024

Ngoài ra, nhấp vào nút Settings và sau đó trong tab Flash Download, đánh dấu vào hộp chọn Reset and Run và nhấp vào ‘ok’.

Hướng dẫn cài keil c	Informational năm 2024

Bước 18: – Bây giờ bấm vào biểu tượng Rebuild để xây dựng lại tất cả các tệp mục tiêu.

Hướng dẫn cài keil c	Informational năm 2024

Bước 19: – Bây giờ bạn có thể cắm ST-LINK vào máy tính với các kết nối mạch đã sẵn sàng và nhấp vào biểu tượng DOWNLOAD hoặc nhấn F8 để flash STM32F103C8 với code bạn đã tạo và chỉnh sửa.

Hướng dẫn cài keil c	Informational năm 2024

Bước 20: – Bạn có thể thấy dấu hiệu nhấp nháy ở dưới cùng của cửa sổ keil uVision.

Hướng dẫn cài keil c	Informational năm 2024

Đầu ra của Board STM32 được lập trình của Keil

Bây giờ khi chúng ta nhấn nút ấn, LED bật và khi chúng ta nhả nó ra, LED sẽ tắt.

Hướng dẫn cài keil c	Informational năm 2024

Chương trình

Phần chính mà chúng tôi đã thêm vào trong chương trình được tạo được hiển thị bên dưới. Code dưới đây cần được đưa vào while (1 ) của chương trình main.c được tạo bởi STM32CubeMX. Bạn có thể quay lại Bước 15 đến Bước 17 để tìm hiểu cách thêm nó vào chương trình main.c.

while (1) > { > if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => phát hiện nút được nhấn > { > HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Để làm cao đầu ra khi nút pressesd > } >
khác > { > HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Để tạo đầu ra Thấp khi nhấn nút > } > } >

Toàn bộ quá trình tạo và tải lên dự án vào board STM32 cũng được giải thích trong Video được đưa ra ở cuối . Ngoài ra code hoàn chỉnh của tệp main.c được đưa ra dưới đây bao gồm cả code đã cho ở trên.