0
1
00:00:01,040 --> 00:00:01,450
Xin chào.
1

2
00:00:01,580 --> 00:00:02,350
Chào mừng trở lại.
2

3
00:00:02,570 --> 00:00:09,260
Vì vậy, trong bài học này, chúng ta sẽ xem làm thế nào để chuyển đổi một dự án hiện có thành một ứng dụng thời gian thực
3

4
00:00:09,300 --> 00:00:11,270
sử dụng FreeRTOS
4

5
00:00:11,300 --> 00:00:12,630
Hạt nhân thời gian thực
5

6
00:00:12,970 --> 00:00:18,510
Vì vậy, những gì chúng ta sẽ làm là chúng ta sẽ tạo ra một ứng dụng bình thường từ đầu và sau đó kiểm tra xem nó có phải là
6

7
00:00:18,530 --> 00:00:22,050
làm việc và sau đó chuyển đổi nó sang ứng dụng thời gian thực.
7

8
00:00:22,250 --> 00:00:25,940
Vì vậy, hãy làm điều đó. Tôi đã mở Keil uVision của tôi ở đây.
8

9
00:00:25,970 --> 00:00:30,970
Và những gì tôi sẽ làm là đến dự án, dự án mới và những gì tôi đã làm là tôi có một thư mục ở đây
9

10
00:00:30,980 --> 00:00:37,470
được gọi là khóa học FreeRTOS và tôi sẽ giữ tất cả các dự án của khóa học này trong đó.
10

11
00:00:37,630 --> 00:00:39,590
Vì vậy, tôi sẽ tạo ra một.
11

12
00:00:40,070 --> 00:00:47,930
Tôi sẽ tạo cái đầu tiên, tôi sẽ gọi thư mục này là số 0 và tôi sẽ gọi đây là bắt đầu.
12

13
00:00:48,330 --> 00:00:55,220
Vì vậy, nếu bạn đã xem bất kỳ khóa học RTOS mới nhất nào của tôi, điều tôi làm là chúng tôi xây dựng tất cả các dự án
13

14
00:00:55,220 --> 00:00:57,800
theo thứ tự thời gian.
14

15
00:00:57,830 --> 00:01:04,280
Vì vậy, chúng tôi kết thúc với các dự án không ai một hai ba đến 50 hoặc một cái gì đó và vào cuối khóa học, bạn
15

16
00:01:04,280 --> 00:01:10,760
loại tạo cho mình một cuốn sách nấu ăn, một hướng dẫn tham khảo, mà bạn có thể tham khảo. Chúng tôi sẽ sắp xếp tất cả
16

17
00:01:10,760 --> 00:01:11,840
Các dự án theo cách này.
17

18
00:01:11,840 --> 00:01:18,280
Vì vậy, cái này được gọi là Bắt đầu và tôi sẽ gọi dự án thực tế là tên tệp
18

19
00:01:18,300 --> 00:01:20,990
Tôi sẽ gọi nó
19

20
00:01:21,370 --> 00:01:26,460
RTOS mờ.
20

21
00:01:26,480 --> 00:01:29,180
Tôi sẽ nhấp vào enter và sau đó nó đưa tôi đến trang này.
21

22
00:01:29,180 --> 00:01:33,350
Trang này yêu cầu tôi chọn vi điều khiển cụ thể của mình.
22

23
00:01:33,380 --> 00:01:39,470
Hiện tại tôi đang sử dụng STM32F4, tôi đang sử dụng bảng khám phá và phiên bản STM32F4
23

24
00:01:39,520 --> 00:01:46,510
trên bảng nhảy của tôi là F411VET.
24

25
00:01:46,500 --> 00:01:47,250
Tôi sẽ bấm vào đây
25

26
00:01:47,390 --> 00:01:53,510
Tôi bấm OK. Sau đó, nó đưa tôi đến môi trường quản lý thời gian chạy và tất cả những gì tôi muốn làm vào lúc này
26

27
00:01:53,510 --> 00:02:01,640
là nhấp vào CMSIS chọn khóa học CMSIS và sau đó nhấp vào thiết bị chọn khởi động và sau đó
27

28
00:02:01,640 --> 00:02:07,280
bởi vì chúng tôi sẽ nhấp nháy một số đèn LED, chúng tôi cũng có thể sử dụng khung khối STM32.
28

29
00:02:07,280 --> 00:02:14,060
Vì vậy, tôi chỉ cần nhấp vào đây khung STM32 và nhấp vào cổ điển và sau đó nó yêu cầu
29

30
00:02:14,220 --> 00:02:18,300
Về tất cả những điều này, tôi bấm giải quyết và sau đó bấm OK.
30

31
00:02:19,750 --> 00:02:21,020
Và dự án đó được tạo ra.
31

32
00:02:21,070 --> 00:02:26,530
Và điều chúng tôi muốn là đổi tên các mục tiêu thành tên của bộ điều khiển vi mô của tôi.
32

33
00:02:26,530 --> 00:02:36,860
Đó là STM32F4 và nhóm nguồn tôi sẽ gọi nó, tôi sẽ đổi tên
33

34
00:02:36,860 --> 00:02:39,960
nó bằng cách nhấn vào đây như thế này
34

35
00:02:40,090 --> 00:02:45,160
Và tôi sẽ gọi ứng dụng này giống như thế này và tôi sẽ tạo một tệp ở đây. Click chuột phải
35

36
00:02:45,160 --> 00:02:48,610
thêm mục mới và đây sẽ là tập tin chính.
36

37
00:02:48,620 --> 00:02:53,180
Tôi sẽ gọi chính như thế này. Và nó được thiết lập.
37

38
00:02:53,180 --> 00:03:00,430
Vì vậy, một khi điều này được mở, tôi muốn thêm lớp trừu tượng phần cứng STM32 của mình. Vì vậy, tôi nhấp chuột phải
38

39
00:03:00,510 --> 00:03:07,640
chèn bao gồm các tập tin sau đó tôi chọn STM32F4HAL.h như thế này.
39

40
00:03:07,640 --> 00:03:08,940
Bây giờ chúng tôi được thiết lập.
40

41
00:03:09,260 --> 00:03:12,160
Vì vậy, chúng ta có thể đến đây và sau đó
41

42
00:03:14,980 --> 00:03:20,200
và chỉ cần đến đây. Sau đó, chúng tôi mở vòng lặp while 1 của chúng tôi.
42

43
00:03:26,350 --> 00:03:31,380
Vì vậy, những gì chúng ta sẽ làm là chúng ta sẽ viết một chút trình điều khiển để khởi tạo các chân GPIO
43

44
00:03:31,420 --> 00:03:38,310
cho bốn đèn led trên bảng nhảy và sau đó chúng tôi sẽ nhấp nháy chúng và đảm bảo chúng hoạt động.
44

45
00:03:38,370 --> 00:03:45,600
Vì vậy, tôi sẽ tạo một hàm ở đây, tôi sẽ gọi hàm này là void gpio underscore init
45

46
00:03:46,840 --> 00:03:51,330
Và đó là một hàm void void
46

47
00:03:51,340 --> 00:04:00,900
như thế này. Vì vậy, chúng tôi bắt đầu bằng cách chỉ khai báo cấu trúc init GPIO và sau đó chúng tôi sử dụng cấu trúc này
47

48
00:04:00,900 --> 00:04:02,410
để khởi tạo chân của chúng tôi.
48

49
00:04:02,700 --> 00:04:10,310
Nhưng trước khi chúng ta làm điều đó, chúng ta chỉ cần khởi tạo đồng hồ truy cập vào GPIO mà chúng ta sẽ sử dụng. Tôi sẽ chỉ
49

50
00:04:10,380 --> 00:04:11,740
mang cái này đến đây như thế này
50

51
00:04:12,620 --> 00:04:13,440
Và tôi chắc chắn bạn.
51

52
00:04:13,470 --> 00:04:17,320
Bạn đã biết cách khởi tạo đèn LED trên bảng STM của mình.
52

53
00:04:17,360 --> 00:04:18,060
.
53

54
00:04:18,070 --> 00:04:22,330
Nếu bạn sử dụng bảng STM, bạn biết làm thế nào để làm điều đó.
54

55
00:04:22,430 --> 00:04:28,510
Vì vậy, đây là cổng cho đèn LED, chúng được kết nối với cổng D.
55

56
00:04:28,820 --> 00:04:34,930
Vì vậy, sau đó chúng tôi bắt đầu bằng cách đặt tất cả các chân ở mức thấp như thế này.
56

57
00:04:34,990 --> 00:04:41,300
HAL GPIO ghi chân cổng D pin 12, sau đó 13 14 15.
57

58
00:04:41,480 --> 00:04:45,940
Và sau đó chúng tôi sẽ thiết lập tất cả chúng để thiết lập lại. Đặt lại có nghĩa là thấp và đèn LED được kết nối với
58

59
00:04:45,960 --> 00:04:49,280
chân 12 13 14 15.
59

60
00:04:49,350 --> 00:04:57,740
Và một khi đã xong, chúng ta có thể cấu hình tất cả chúng cùng một lúc, chúng ta hãy mang tất cả những thứ này đến đây như thế này và
60

61
00:04:57,740 --> 00:05:01,000
cái này ở đây chọn các chân.
61

62
00:05:01,090 --> 00:05:01,480
Đúng.
62

63
00:05:01,480 --> 00:05:07,870
Đây là các chân và sau đó là chế độ chúng ta đặt tất cả chúng thành đầu ra đẩy kéo, và sau đó là kéo, chúng ta nói không kéo.
63

64
00:05:08,040 --> 00:05:13,380
và sau đó tốc độ thấp tần số và sau đó, điều này khởi tạo GPIO
64

65
00:05:13,630 --> 00:05:18,760
Nó đơn giản như thế này. Vì vậy, những gì tôi sẽ làm là tôi sẽ mang nguyên mẫu của chức năng này lên đây như thế nào
65

66
00:05:18,760 --> 00:05:19,950
điều này.
66

67
00:05:20,010 --> 00:05:27,350
Tôi sẽ đặt một dấu chấm phẩy ở đây và một khi đã xong, bây giờ tôi có thể gọi hàm ở đây. Chỉ cần làm sạch này,
67

68
00:05:28,040 --> 00:05:34,240
Và sau đó tôi chỉ cần làm sạch này. Những gì chúng ta sẽ làm là chúng ta sẽ tạo ra những cái tên tượng trưng cho đèn LED
68

69
00:05:34,310 --> 00:05:43,360
Bởi vì nó hơi khó hiểu khi gọi chúng là gpio 12 13 14 15 nên tôi sẽ đặt một câu lệnh xác định ở đây và
69

70
00:05:43,740 --> 00:05:44,060
Tôi sẽ nói định nghĩa
70

71
00:05:46,820 --> 00:05:54,200
màu xanh lá cây, tôi sẽ sử dụng mũ và màu xanh lá cây là gpio pin 12 vì vậy tôi chỉ
71

72
00:05:54,600 --> 00:05:56,500
Sẽ nói gpio gạch dưới gạch dưới 12
72

73
00:06:01,480 --> 00:06:03,670
Tôi sẽ định nghĩa màu cam ở đây.
73

74
00:06:08,600 --> 00:06:24,210
Tôi sẽ làm tương tự cho màu đỏ và màu xanh. Tôi sẽ đổi nó thành màu đỏ và màu đỏ là chân số 14 và tôi sẽ đổi nó thành màu xanh.
74

75
00:06:24,220 --> 00:06:28,200
Màu xanh là pin 15 như thế này. Đúng.
75

76
00:06:28,620 --> 00:06:32,760
Vì vậy, chúng tôi có điều này. Vì vậy, lần tới, chúng tôi muốn chuyển đổi bất kỳ chân nào trong số chúng tôi có thể
76

77
00:06:32,830 --> 00:06:38,250
chỉ cần sử dụng chúng bởi những tên này màu xanh lá cây màu đỏ cam và màu xanh.
77

78
00:06:38,380 --> 00:06:44,420
Vì vậy đây là nó. Không được xem liệu chúng ta có thể nháy cả bốn đèn LED cùng một lúc không.
78

79
00:06:44,670 --> 00:06:45,570
Những gì tôi sẽ làm là,
79

80
00:06:45,600 --> 00:06:47,730
Tôi sẽ gọi cho HAL
80

81
00:06:47,730 --> 00:06:49,480
GPIO viết pin
81

82
00:06:49,970 --> 00:06:53,310
viết mã pin chuyển đổi hoặc chuyển đổi API pin
82

83
00:06:53,400 --> 00:06:55,850
Vì vậy, tôi sẽ chỉ đến đây.
83

84
00:06:58,540 --> 00:06:59,070
HAL
84

85
00:07:04,420 --> 00:07:20,030
GPIO gạch dưới chuyển đổi pin và cái này ở đây lấy cổng của pin và sau đó là số pin để nó là cổng GPIO D
85

86
00:07:20,450 --> 00:07:28,010
Và bây giờ tôi chỉ có thể nói, màu xanh lá cây, màu xanh lam, tôi có thể sử dụng toán tử hoặc toán tử để nối tất cả chúng.
86

87
00:07:28,030 --> 00:07:36,810
màu xanh, đỏ và cam, như thế này. Đặt một dấu chấm phẩy ở đây và chúng ta có thể tạo ra một chút giả
87

88
00:07:36,820 --> 00:07:39,800
Chúng tôi sẽ không sử dụng độ trễ HAL ở đây.
88

89
00:07:40,210 --> 00:07:48,450
Vì vậy, hãy sử dụng vòng lặp này. Tôi sẽ đặt một loại số nguyên ở đây. và tôi sẽ đến đây
89

90
00:07:48,630 --> 00:07:56,850
nói cho tôi bằng không, tôi dưới 500000, tôi
90

91
00:07:56,890 --> 00:07:59,110
Cộng cộng. Đây chỉ là để tạo ra một độ trễ giả
91

92
00:07:59,110 --> 00:08:02,220
chúng ta sẽ sử dụng độ trễ thời gian thực, đừng lo lắng.
92

93
00:08:02,650 --> 00:08:10,900
Vì vậy, hãy xem ứng dụng này, đây là ứng dụng của chúng tôi. Hãy giả sử đây là nó. Tôi sẽ chỉ xây dựng lại. Nó đang hiển thị cảnh báo này bởi vì
93

94
00:08:11,040 --> 00:08:20,640
chúng tôi không có một dòng mới ở đây tôi sẽ đặt nó ở đây và tôi sẽ đến đây. XTAL mặc định của tôi là 16 megahertz. Đang gỡ lỗi
94

95
00:08:20,650 --> 00:08:21,960
Tôi sẽ chọn tôi
95

96
00:08:22,090 --> 00:08:27,280
Trình gỡ lỗi liên kết ST. Nếu bạn đang sử dụng bảng Texas Cụ, thì bạn là Stellaris
96

97
00:08:27,280 --> 00:08:32,290
ICDI và tôi sẽ đến cài đặt và tải xuống flash
97

98
00:08:32,290 --> 00:08:35,860
Tôi sẽ nhấp vào đây để thiết lập lại và chạy và nhấp vào OK.
98

99
00:08:36,150 --> 00:08:40,560
và tôi bấm OK. Sau đó, tôi kết nối bảng của tôi và tải xuống bảng của tôi.
99

100
00:08:40,750 --> 00:08:47,970
Vì vậy, tôi chỉ cần nhấp vào đây để tải xuống bảng của mình và như bạn có thể thấy tất cả bốn đèn LED đang nhấp nháy.
100

101
00:08:48,250 --> 00:08:54,910
Vì vậy, giả sử đây là ứng dụng của chúng tôi, chúng tôi muốn biến thành một ứng dụng thời gian thực bằng cách sử dụng freeRTOS
101

102
00:08:54,970 --> 00:08:56,900
hạt nhân thời gian thực
102

103
00:08:57,270 --> 00:08:57,840
Đúng.
103

104
00:08:57,850 --> 00:09:01,160
Vì vậy, sử dụng keil uVision nó rất rất dễ dàng.
104

105
00:09:01,270 --> 00:09:02,720
Nó rất đơn giản.
105

106
00:09:02,760 --> 00:09:03,700
Hãy xem cách làm điều đó.
