Bài tập: Lập phương trình hệ thống môn Kỹ thuật máy tính(p2) | Đại học Bách Khoa, Đại học Đà Nẵng

Bài tập: Lập phương trình hệ thống môn Kỹ thuật máy tính(p2) | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

Đèn led nhấp nháy với STM32CubeMX và HAL
Mô tả mục tiêu:
Hướng dẫn này cho thấy cách sử dụng công cụ STM32CubeMX để khởi tạo các
thiết bị ngoại vi, xây dựng và tạo các dự án ban đầu của bạn bằng mã C khởi tạo
bằng thư viện HAL. Sau hướng dẫn này, bạn sẽ có thể:
tạo và định cấu hình dự án STM32CubeMX và tạo mã khởi tạo
lập trình và sử dụng các chức năng HAL để nhấp nháy đèn LED trên bo
mạch NUCLEO-L476RG.
Điều khiện:
Hướng dẫn trước: Bước 1: Cài đặt công cụ và kiểm tra lần đầu..
Phần cứng:
Các yêu cầu phần cứng để khởi động ứng dụng như sau:
Bo mạch NUCLEO-L476RG (64 chân)
Cáp USB loại A đến Mini-B
Tổng quan:
Bảng dữ liệu STM32L476xx
UM1724 Hướng dẫn sử dụng bảng STM32 Nucleo-64
UM1884 Mô tả STM32L4/L4+ HAL và trình điều khiển lớp thấp
UM1718 Hướng dẫn sử dụng STM32CubeMX để cấu hình và khởi tạo
STM32 tạo mã C
Youtube: Cách xây dựng dự án “Đèn LED nhấp nháy” từ STM32CubeMX
cho ST/Atollic TrueSTUDIO® cho STM32.
1. Tạo dự án mới bằng bằng STM32Cube
Chạy công cụ .STM32CubeMX
Nhấp vào New Project or Menu -> File -> New Project.
Từ phần , lọc để chọn và sử dụng bo mạch NUCLEO-Board Selector
L476RG:
Kiểm tra loại .Nucleo64
Kiểm tra trên dòng MCU.STM32L4
Chọn bảng bằng bộ chọn bảng:NUCLEO-L476RG
Bấm vào Star project để tiếp tục.
Trả lời Yes Initialize all peripherals with their default Mode ? cửa sổ bật
lên.
2. Cấu hình sơ đồ chân:
Xác minh trong tab , bên dưới , Pinout SYS peripheral Serial Wire được chọn làm
giao diện Gỡ lỗi:
Các chân tương ứng PA13 và PA14 được gán và cấu hình tự động.
Khi một bo mạch được chọn, STM32CubeMX cho phép tự động cài đặt sơ đồ chân
cho bo mạch với việc gán chân cho các giao diện truyền thông, đèn LED và các
chức năng khác.
(Để định cấu hình các chân LED, hãy xem Hướng dẫn sử dụng bảng STM32
Nucleo-64 và Bảng dữ liệu STM32L476xx để sử dụng chân LED nào).
INFORMATION : Để xem các chân thay thế của một tín hiệu, hãy kéo và thả tín
hiệu vào một chân trong khi vẫn nhấn phím Ctrl.
Ví dụ này cho thấy việc sử dụng chân LED màu xanh lá cây LD2 có trên bo mạch
NUCLEO-L476RG làm GPIO_Output.
Để xác minh rằng LD2 được đặt ở chế độ GPIO_Output:
Nhập “LED” vào trường Tìm và kiểm tra xem LD2 (Đèn LED màu xanh lá
cây) có được bật cho chân PA5 dưới dạng GPIO_Output hay không.
Khi tìm thấy, mã pin phù hợp với tiêu chí tìm kiếm sẽ nhấp nháy trên chế độ
xem Chip.
Bấm vào Chip view để ngừng nhấp nháy. Các tín hiệu có thể được đặt trực
tiếp từ chế độ xem sơ đồ chân:
INFORMATION: Trường tìm kiếm Pinout cho phép người dùng tìm kiếm
tên pin, tên tín hiệu hoặc nhãn tín hiệu trong chế độ xem Pinout. Khi được
tìm thấy, ghim hoặc bộ ghim phù hợp với tiêu chí tìm kiếm sẽ nhấp nháy
trên chế độ xem Chip. Nhấp vào chế độ xem Chip, để ngừng nhấp nháy.
3 . Cấu hình đồng hồ
Trong tab , hãy kiểm tra xem STM32CubeMX có tự động Clock Configuration
định cấu hình bộ tạo dao động bên trong trong hệ thống đồng hồ với PLL @80
MHz hay không và đề xuất cấu hình PLL như sau:
1. HSI được chọn trong PLL Source Mux (HSI – High Speed Internal clock)
2. PLLCLK được chọn trong Mux Đồng hồ Hệ thống
3. HCLK được đặt thành 80
4. Cấu hình GPIO
Để định cấu hình GPIO, hãy nhấp vào nút GPIO trong Tab để mở Configuration
cửa sổ Cấu hình GPIO.
Trong Tab chọn cột Pin Name GPIO PA5 để hiển thị thông số và cấu hình GPIO
tương ứng để điều khiển đèn LED NUCLEO-L476RG:
GPIO Output level: nó được đặt ở mức Thấp theo mặc định và có thể thay
đổi thành Cao.
GPIO mode tự động cấu hình các chân với chức năng thay thế có liên quan
và GPIO sang chế độ Push Pull đầu ra.
GPIO Pull-up/Pull-dow No pull-up and no pull-down đặt thành theo mặc
định có thể được cấu hình khi các lựa chọn khác được cho phép.
GPIO đặt thành theo mặc định, việc tối ưu Maximum output speed Low
hóa mức tiêu thụ điện năng có thể được thay đổi thành tần số cao hơn để phù
hợp với yêu cầu ứng dụng.
User Label là tên được gán cho GPIO. GPIO có thể được tìm thấy dưới tên
này thông qua the Fine menu.
nhấn sau đó để tắt cửa sổApply OK
5. Định cấu hình dự án và tạo mã
Chuyển Project Manager tab tới cấu hình dự án. Trong Project tab:
Điền vào Project Name Project Location
Đặt ở Toolchain/IDE STM32CubeIDE
Trong tab, đảm bảo rằng các tùy chọn sau được chọn:Code generator
Trong phần STM32Cube Firmware Library Package Copy all used :
libraries into the project folder.
Trong phần : chọn mục Generated files Keep user code when
regenerating the C code , chỉ áp dụng cho các phần người dùng trong tệp
được tạo STM32CubeMX.
Để tạo dự án trong STM32CubeIDE:
Nhấp vào Generator Code
Nhấp vào để mở dự án với STM32CubeIDEOpen Project
6. Chỉnh sửa main.c để chuyển đổi đèn
Trong STM32CubeIDE, từ tab Project Explorer, mở tệp main.c, trong thư mục Src
và thêm các chức năng thích hợp cho đèn LED nhấp nháy, sử dụng các chức năng
HAL với gói phần mềm STM32CubeL4.
Để có ý tưởng về cách sử dụng các chức năng HAL, hãy tham khảo hướng dẫn sử
dụng UM1884 “Mô tả STM32L4/L4+ HAL và trình điều khiển lớp thấp”, hướng
dẫn sử dụng này cung cấp các chức năng phổ biến và chung để sử dụng.
Mã người dùng có thể được thêm vào tệp main.c, bên trong vòng lặp (1) while
giữa phần (điều này /* USER CODE BEGIN 3 */ /* USER CODE END 3 */
sẽ giữ nguyên mã của bạn sau khi tạo lại).
Để chuyển đổi đèn LED, hãy sử dụng các chức năng sau:
HAL_GPIO_TogglePin (GPIOA, GPIO_PIN_5);
HAL_Delay ( ); 100 /* Insert delay 100 ms */
7. Xây dựng dự án
Để cấp nguồn cho NUCLEO-L476RG, hãy sử dụng đầu nối CN1 của nó để kết nối
với máy tính thông qua cáp USB Type-A đến Mini-B.
Nhấp vào dự án từ trình khám phá dự án, sau đó nhấp chuột phải và chọn Build
Project để biên dịch dự án (hoặc nhấp vào nút trên thanh công cụ).Build button
8. Gỡ lỗi dự án
Nhấp vào biểu tượng thanh công cụ ,, sau đó vào nút để xây Build Debug
dựng dự án và bắt đầu phiên gỡ lỗi (hoặc trong menu, chọn Project > Build
Project Run > Debug).rồi
Nhấp vào biểu tượng để tiếp tục thực hiện.Resume
Bây giờ hãy xem đèn LED màu xanh lục (LD2) bật tắt trên bo mạch Nucleo-
L476RG.
Bây giờ bạn có thể:
tạo một dự án mới bằng STM32CubeMX.
định cấu hình dự án trong STM32CubeMx và tạo mã khởi tạo.
cập nhật mã dự án trong STM32CubeIDE bằng hàm HAL.
thực hiện một dự án ở chế độ gỡ lỗi.
làm đèn LED nhấp nháy.
9 . Người giới thiệu
NUCLEO-L476RG board (64-pin):
| 1/10

Preview text:

Đèn led nhấp nháy với STM32CubeMX và HAL Mô tả mục tiêu:
Hướng dẫn này cho thấy cách sử dụng công cụ STM32CubeMX để khởi tạo các
thiết bị ngoại vi, xây dựng và tạo các dự án ban đầu của bạn bằng mã C khởi tạo
bằng thư viện HAL. Sau hướng dẫn này, bạn sẽ có thể:
tạo và định cấu hình dự án STM32CubeMX và tạo mã khởi tạo
lập trình và sử dụng các chức năng HAL để nhấp nháy đèn LED trên bo mạch NUCLEO-L476RG. Điều khiện:
Hướng dẫn trước: Bước 1: Cài đặt công cụ và kiểm tra lần đầu.. Phần cứng:
Các yêu cầu phần cứng để khởi động ứng dụng như sau:
Bo mạch NUCLEO-L476RG (64 chân)
Cáp USB loại A đến Mini-B Tổng quan: Bảng dữ liệu STM32L476xx
UM1724 Hướng dẫn sử dụng bảng STM32 Nucleo-64
UM1884 Mô tả STM32L4/L4+ HAL và trình điều khiển lớp thấp
UM1718 Hướng dẫn sử dụng STM32CubeMX để cấu hình và khởi tạo STM32 tạo mã C
Youtube: Cách xây dựng dự án “Đèn LED nhấp nháy” từ STM32CubeMX
cho ST/Atollic TrueSTUDIO® cho STM32.
1. Tạo dự án mới bằng bằng STM32Cube↑ Chạy công cụ STM32CubeMX.
Nhấp vào New Project or Menu -> File -> New Project.
Từ phần Board Selector, lọc để chọn và sử dụng bo mạch NUCLEO- L476RG: Kiểm tra loại Nucleo64.
Kiểm tra STM32L4 trên dòng MCU.
Chọn bảng NUCLEO-L476RG bằng bộ chọn bảng:
Bấm vào Star project để tiếp tục.
Trả lời Yes Initialize all peripherals with their default Mode ? cửa sổ bật lên.
2. Cấu hình sơ đồ chân:
Xác minh trong tab Pinout, bên dưới SYS peripheral, Serial Wire được chọn làm giao diện Gỡ lỗi:
Các chân tương ứng PA13 và PA14 được gán và cấu hình tự động.
Khi một bo mạch được chọn, STM32CubeMX cho phép tự động cài đặt sơ đồ chân
cho bo mạch với việc gán chân cho các giao diện truyền thông, đèn LED và các chức năng khác.
(Để định cấu hình các chân LED, hãy xem Hướng dẫn sử dụng bảng STM32
Nucleo-64 và Bảng dữ liệu STM32L476xx để sử dụng chân LED nào).
INFORMATION : Để xem các chân thay thế của một tín hiệu, hãy kéo và thả tín
hiệu vào một chân trong khi vẫn nhấn phím Ctrl.
Ví dụ này cho thấy việc sử dụng chân LED màu xanh lá cây LD2 có trên bo mạch
NUCLEO-L476RG làm GPIO_Output.
Để xác minh rằng LD2 được đặt ở chế độ GPIO_Output:
Nhập “LED” vào trường Tìm và kiểm tra xem LD2 (Đèn LED màu xanh lá
cây) có được bật cho chân PA5 dưới dạng GPIO_Output hay không.
Khi tìm thấy, mã pin phù hợp với tiêu chí tìm kiếm sẽ nhấp nháy trên chế độ xem Chip.
Bấm vào Chip view để ngừng nhấp nháy. Các tín hiệu có thể được đặt trực
tiếp từ chế độ xem sơ đồ chân:
INFORMATION: Trường tìm kiếm Pinout cho phép người dùng tìm kiếm
tên pin, tên tín hiệu hoặc nhãn tín hiệu trong chế độ xem Pinout. Khi được
tìm thấy, ghim hoặc bộ ghim phù hợp với tiêu chí tìm kiếm sẽ nhấp nháy
trên chế độ xem Chip. Nhấp vào chế độ xem Chip, để ngừng nhấp nháy. 3 . Cấu hình đồng hồ
Trong tab Clock Configuration, hãy kiểm tra xem STM32CubeMX có tự động
định cấu hình bộ tạo dao động bên trong trong hệ thống đồng hồ với PLL @80
MHz hay không và đề xuất cấu hình PLL như sau:
1. HSI được chọn trong PLL Source Mux (HSI – High Speed Internal clock)
2. PLLCLK được chọn trong Mux Đồng hồ Hệ thống
3. HCLK được đặt thành 80 4. Cấu hình GPIO
Để định cấu hình GPIO, hãy nhấp vào nút GPIO trong Tab Configuration để mở cửa sổ Cấu hình GPIO.
Trong Tab GPIO chọn cột Pin Name PA5 để hiển thị thông số và cấu hình GPIO
tương ứng để điều khiển đèn LED NUCLEO-L476RG:
GPIO Output level: nó được đặt ở mức Thấp theo mặc định và có thể thay đổi thành Cao.
GPIO mode tự động cấu hình các chân với chức năng thay thế có liên quan
và GPIO sang chế độ Push Pull đầu ra. GPIO Pull-up/Pull-dow No pull-up and no pull-down đặt thành theo mặc
định có thể được cấu hình khi các lựa chọn khác được cho phép.
GPIO Maximum output speed đặt thành Low theo mặc định, việc tối ưu
hóa mức tiêu thụ điện năng có thể được thay đổi thành tần số cao hơn để phù
hợp với yêu cầu ứng dụng.
User Label là tên được gán cho GPIO. GPIO có thể được tìm thấy dưới tên này thông qua the Fine menu.
nhấn Apply sau đó OK để tắt cửa sổ
5. Định cấu hình dự án và tạo mã
Chuyển Project Manager tab tới cấu hình dự án. Trong Project tab:
Điền vào Project Name và Project Location
Đặt ở Toolchain/IDE là STM32CubeIDE
Trong Code generator tab, đảm bảo rằng các tùy chọn sau được chọn:
Trong phần STM32Cube Firmware Library Package : Copy all used
libraries into the project folder. Trong phần : chọn mục Generated files Keep user code when
regenerating the C code , chỉ áp dụng cho các phần người dùng trong tệp được tạo STM32CubeMX.
Để tạo dự án trong STM32CubeIDE: Nhấp vào Generator Code
Nhấp vào Open Project để mở dự án với STM32CubeIDE
6. Chỉnh sửa main.c để chuyển đổi đèn
Trong STM32CubeIDE, từ tab Project Explorer, mở tệp main.c, trong thư mục Src
và thêm các chức năng thích hợp cho đèn LED nhấp nháy, sử dụng các chức năng
HAL với gói phần mềm STM32CubeL4.
Để có ý tưởng về cách sử dụng các chức năng HAL, hãy tham khảo hướng dẫn sử
dụng UM1884 “Mô tả STM32L4/L4+ HAL và trình điều khiển lớp thấp”, hướng
dẫn sử dụng này cung cấp các chức năng phổ biến và chung để sử dụng.
Mã người dùng có thể được thêm vào tệp main.c, bên trong vòng lặp while (1)
giữa phần /* USER CODE BEGIN 3 */ và /* USER CODE END 3 */ (điều này
sẽ giữ nguyên mã của bạn sau khi tạo lại).
Để chuyển đổi đèn LED, hãy sử dụng các chức năng sau:
HAL_GPIO_TogglePin (GPIOA, GPIO_PIN_5); HAL_Delay ( ); 100 /* Insert delay 100 ms */ 7. Xây dựng dự án
Để cấp nguồn cho NUCLEO-L476RG, hãy sử dụng đầu nối CN1 của nó để kết nối
với máy tính thông qua cáp USB Type-A đến Mini-B.
Nhấp vào dự án từ trình khám phá dự án, sau đó nhấp chuột phải và chọn Build
Project để biên dịch dự án (hoặc nhấp vào nút Build button trên thanh công cụ). 8. Gỡ lỗi dự án
Nhấp vào biểu tượng thanh công cụ Build ,, sau đó vào nút Debug để xây
dựng dự án và bắt đầu phiên gỡ lỗi (hoặc trong menu, chọn Project > Build Project rồi Run > Debug).
Nhấp vào biểu tượng Resume để tiếp tục thực hiện.
Bây giờ hãy xem đèn LED màu xanh lục (LD2) bật tắt trên bo mạch Nucleo- L476RG. Bây giờ bạn có thể:
tạo một dự án mới bằng STM32CubeMX.
định cấu hình dự án trong STM32CubeMx và tạo mã khởi tạo.
cập nhật mã dự án trong STM32CubeIDE bằng hàm HAL.
thực hiện một dự án ở chế độ gỡ lỗi. làm đèn LED nhấp nháy. 9 . Người giới thiệu NUCLEO-L476RG board (64-pin):