1
1

00:00:01,970  -->  00:00:06,540
Hallo Leute, da ist der Port Support
2

2

00:00:04,470  -->  00:00:09,570
Paketprojekt habe ich an dieses angehängt
3

3

00:00:06,540  -->  00:00:12,360
Video, also werde ich dich einfach durchziehen
4

4

00:00:09,570  -->  00:00:14,700
wie gesagt dieser abschnitt ist nicht zu unterrichten
5

5

00:00:12,360  -->  00:00:16,320
Sie, wie man Peripherietreiber schreibt, wenn
6

6

00:00:14,700  -->  00:00:18,630
Sie möchten lernen, wie Sie das tun können
7

7

00:00:16,320  -->  00:00:21,560
sende mir eine Nachricht, die ich dir beibringe
8

8

00:00:18,630  -->  00:00:24,240
Tag, wie man einen Peripherietreiber schreibt
9

9

00:00:21,560  -->  00:00:26,280
Aber der Schwerpunkt des Kurses liegt auf
10

10

00:00:24,240  -->  00:00:29,280
Erstellen von Echtzeitanwendungen und -systemen
11

11

00:00:26,280  -->  00:00:32,070
Ich werde diesen Abschnitt also sehr kurz halten und
12

12

00:00:29,280  -->  00:00:34,920
dann springen wir zurück zum arm der hauptleitung
13

13

00:00:32,070  -->  00:00:36,600
Agenda also nur um dir ein kurzes zu geben
14

14

00:00:34,920  -->  00:00:40,229
Überblick über das Port Support Package
15

15

00:00:36,600  -->  00:00:42,629
Wenn du den Arm herunterlädst, habe ich die bsp
16

16

00:00:40,229  -->  00:00:44,850
an das video angehängt siehst du eine
17

17

00:00:42,629  -->  00:00:46,979
Anzahl der Dateien Ich werde zwei anhängen
18

18

00:00:44,850  -->  00:00:50,129
Versionen und ich werde beide Versionen erklären
19

19

00:00:46,979  -->  00:00:54,359
Also, wenn Sie Version 1 öffnen, ist das ich
20

20

00:00:50,129  -->  00:00:58,949
denke, es wird PSP v2 heißen, wenn
21

21

00:00:54,359  -->  00:01:01,949
Sie öffnen Version 2 TM4C 1-2-3 PSP
22

22

00:00:58,949  -->  00:01:05,519
Version 2 gibt es eine Reihe von Dateien
23

23

00:01:01,949  -->  00:01:09,329
Beginnen wir aber mit dem abstrakten Punkt
24

24

00:01:05,519  -->  00:01:12,689
txt so beschreibt die Zusammenfassung nur die
25

25

00:01:09,329  -->  00:01:14,610
Pin-Verbindung im Grunde werden wir
26

26

00:01:12,689  -->  00:01:17,310
Wir werden eine Reihe von aktivieren
27

27

00:01:14,610  -->  00:01:20,820
Hardware-Geräte, mit denen wir testen und ausführen können
28

28

00:01:17,310  -->  00:01:23,670
unsere Echtzeitanwendungen einer von ihnen
29

29

00:01:20,820  -->  00:01:25,649
ist eine Sonde, für die wir initialisieren werden
30

30

00:01:23,670  -->  00:01:27,689
GPIO-Pins und wir werden sie als verwenden
31

31

00:01:25,649  -->  00:01:30,479
Sonden, was wir tun werden, ist, wir sind
32

32

00:01:27,689  -->  00:01:32,969
Ich werde diese Stifte setzen, um umzuschalten und wir
33

33

00:01:30,479  -->  00:01:35,280
wenn wir die Frequenz von a überprüfen wollen
34

34

00:01:32,969  -->  00:01:37,140
bestimmten Thread, in dem wir was laufen
35

35

00:01:35,280  -->  00:01:40,920
andere frequenz ist genau wir gerade
36

36

00:01:37,140  -->  00:01:43,649
Setzen Sie diese Sonde in diesen Faden und
37

37

00:01:40,920  -->  00:01:46,429
dann verwenden wir einen tatsächlichen oder Silla-Bereich, um
38

38

00:01:43,649  -->  00:01:49,740
Ich werde erklären, was ich meine
39

39

00:01:46,429  -->  00:01:54,749
Wir haben also die Sonde, die wir verwenden werden
40

40

00:01:49,740  -->  00:01:57,270
Port Port C Pin 0 Pin 1 Pin auf Pin 3 als
41

41

00:01:54,749  -->  00:01:59,369
Die Sonde schaut auf die Apis der Sonde
42

42

00:01:57,270  -->  00:02:01,439
sehr bald und du verstehst mehr und
43

43

00:01:59,369  -->  00:02:04,859
dann haben wir diese Stifte zum Initialisieren
44

44

00:02:01,439  -->  00:02:09,060
das Grafikdisplay haben wir PA - PA genannt
45

45

00:02:04,859  -->  00:02:12,460
5 PS 7 PS 6 und PA 3, wenn Sie die SD haben
46

46

00:02:09,060  -->  00:02:15,550
7 735 nur durch Verbinden
47

47

00:02:12,460  -->  00:02:19,120
Stifte zu diesen GPIO-Stiften können Sie es bekommen
48

48

00:02:15,550  -->  00:02:21,550
Arbeite ohne Hektik
49

49

00:02:19,120  -->  00:02:24,640
und dann werden wir einen ADC von verwenden
50

50

00:02:21,550  -->  00:02:27,730
natürlich zum experimentieren und mit dem ADC
51

51

00:02:24,640  -->  00:02:28,780
initialisiert ist also mit P III verbunden
52

52

00:02:27,730  -->  00:02:30,280
wenn Sie Ihre Hardware tun
53

53

00:02:28,780  -->  00:02:33,790
anschlüsse kannst du einfach an die kommen
54

54

00:02:30,280  -->  00:02:35,800
Vertrag txt, um so jetzt einen Blick zu werfen
55

55

00:02:33,790  -->  00:02:37,420
Gehen wir zum eigentlichen Board Support
56

56

00:02:35,800  -->  00:02:40,660
Paket Ich werde mit der Schnittstelle beginnen
57

57

00:02:37,420  -->  00:02:43,630
Datei der BSP Punkt H Ich werde hierher kommen
58

58

00:02:40,660  -->  00:02:45,730
und diesen herbst gibt es hier im grunde
59

59

00:02:43,630  -->  00:02:48,280
eine Übersicht über einige der Arm einige von
60

60

00:02:45,730  -->  00:02:50,560
Die Treiber, die wir initialisiert haben, haben wir
61

61

00:02:48,280  -->  00:02:53,430
Habe das RCC hier, das wird helfen
62

62

00:02:50,560  -->  00:02:55,810
uns die Systemfrequenz zu ändern
63

63

00:02:53,430  -->  00:02:57,610
Hier gibt es eine Funktion, die uns erlaubt
64

64

00:02:55,810  -->  00:02:59,230
um unsere Systemfrequenz auf 80 zu verschieben
65

65

00:02:57,610  -->  00:03:02,980
Megahertz, wenn wir es brauchen
66

66

00:02:59,230  -->  00:03:05,410
wir können wir können die API verwenden und wegen
67

67

00:03:02,980  -->  00:03:08,020
dass wir Treiber für das RCC schreiben mussten
68

68

00:03:05,410  -->  00:03:10,930
Modul verwenden wir die Allzweckzeit
69

69

00:03:08,020  -->  00:03:13,510
RA sowie Zeit r3 und dann
70

70

00:03:10,930  -->  00:03:17,500
Wir verwenden eine breite Zeit, warum die Timer sind
71

71

00:03:13,510  -->  00:03:19,510
32-Bit-Timer und sie können 64-Bit sein
72

72

00:03:17,500  -->  00:03:22,030
Zeit, als ob Sie zwei von ihnen wir verbinden
73

73

00:03:19,510  -->  00:03:25,390
Nutze auch diese Art von Zeit und wir nutzen sie
74

74

00:03:22,030  -->  00:03:28,480
ein TC 0 und dann SSI 0 zur Bereitstellung des
75

75

00:03:25,390  -->  00:03:31,420
Verbindung zum LCD-Display und dann
76

76

00:03:28,480  -->  00:03:36,100
Wie ich bereits erwähnte, verwenden wir GPIO
77

77

00:03:31,420  -->  00:03:38,770
Unser Sondenport, das sind nur einige davon
78

78

00:03:36,100  -->  00:03:40,840
definierte Aussage für Konstante
79

79

00:03:38,770  -->  00:03:43,270
Parameter zur Initialisierung des RCC
80

80

00:03:40,840  -->  00:03:45,370
Modul so haben wir das und wir haben ein
81

81

00:03:43,270  -->  00:03:48,160
Standard API zur Initialisierung des Timers
82

82

00:03:45,370  -->  00:03:49,630
hier ist das sehr einfach wir verwenden
83

83

00:03:48,160  -->  00:03:52,960
dies, um den allgemeinen Zweck zu initialisieren
84

84

00:03:49,630  -->  00:03:54,640
breiter timer 5 und wir haben diesen mikro bekommen
85

85

00:03:52,960  -->  00:03:56,740
diese Funktion, die verwendet werden, um eine zu bekommen
86

86

00:03:54,640  -->  00:03:58,630
Systemzeit werden wir sehen, wie es ist
87

87

00:03:56,740  -->  00:04:01,300
angewendet, wenn wir in unserer Zeitschrift entwerfen
88

88

00:03:58,630  -->  00:04:04,330
Threads oder wenn wir regelmäßig ausgeführt wurden
89

89

00:04:01,300  -->  00:04:07,330
Anwendungen und dieser hier ist Timer
90

90

00:04:04,330  -->  00:04:11,620
3a verwenden wir die Zeit a 3a verwenden wir einen anderen Timer
91

91

00:04:07,330  -->  00:04:14,800
hier timer 2 a und wir haben diese funktion
92

92

00:04:11,620  -->  00:04:18,040
Hier wird diese Funktion verwendet, um die
93

93

00:04:14,800  -->  00:04:19,480
Ergebnis der ADC-Konvertierung und von
94

94

00:04:18,040  -->  00:04:22,690
Natürlich haben wir diese Funktion dazu
95

95

00:04:19,480  -->  00:04:24,400
Initialisieren Sie den ADC und dann diesen
96

96

00:04:22,690  -->  00:04:25,990
Funktion, die ich erwähnt habe
97

97

00:04:24,400  -->  00:04:28,780
früher wird uns das helfen
98

98

00:04:25,990  -->  00:04:31,930
Konfigurieren Sie die Systemuhr so, dass sie bei 80 ausgeführt wird
99

99

00:04:28,780  -->  00:04:33,880
Megahertz und wir haben eine verzögerte MS
100

100

00:04:31,930  -->  00:04:36,340
Funktion, die Millisekunden liefert
101

101

00:04:33,880  -->  00:04:38,770
Verzögerung werden wir die Umsetzung von sehen
102

102

00:04:36,340  -->  00:04:41,319
all diese API Slater und natürlich wir
103

103

00:04:38,770  -->  00:04:44,860
müssen darin für GPIO initialisieren prüfen
104

104

00:04:41,319  -->  00:04:47,979
C-Pins als Ausgang und dann haben wir Sonde
105

105

00:04:44,860  -->  00:04:51,330
CH 0 ist ein einfaches Umschalten von Pin Null
106

106

00:04:47,979  -->  00:04:55,030
Ein- und Ausschalten und Sonde ch1 ist
107

107

00:04:51,330  -->  00:04:58,990
tako pin 1 und dann ch2 tonga auf
108

108

00:04:55,030  -->  00:05:03,190
und natürlich spricht Sonde CH 3 Pin
109

109

00:04:58,990  -->  00:05:04,960
3 Das ist also so, wie ich sagte, ich gehe
110

110

00:05:03,190  -->  00:05:05,349
zwei Versionen des Ports Support haben
111

111

00:05:04,960  -->  00:05:07,659
Paket
112

112

00:05:05,349  -->  00:05:10,870
diese version hab ich wie du siehst
113

113

00:05:07,659  -->  00:05:14,440
trennte alle Module vom LCD
114

114

00:05:10,870  -->  00:05:17,080
Modul der Grund dafür ist, dass, wenn ich hinzufüge
115

115

00:05:14,440  -->  00:05:20,050
die LCD-Initialisierungsparameter und
116

116

00:05:17,080  -->  00:05:23,259
treiber auf das unmögliche paket drauf
117

117

00:05:20,050  -->  00:05:25,659
wird so ein sehr sehr langes dokument
118

118

00:05:23,259  -->  00:05:28,210
wird verwirrender und Sie wissen mehr
119

119

00:05:25,659  -->  00:05:30,639
schwer zu verfolgen also was ich tue ist
120

120

00:05:28,210  -->  00:05:32,669
Ich habe das LCD, das ich erstellt habe, getrennt
121

121

00:05:30,639  -->  00:05:36,909
neue Datei hier als LCD bekannt
122

122

00:05:32,669  -->  00:05:39,909
unterstreiche SD 7 7 3 5 Punkt C und es Punkt H
123

123

00:05:36,909  -->  00:05:41,889
Datei und was ich tue, ist, ich habe alles gesetzt
124

124

00:05:39,909  -->  00:05:45,130
die Initialisierungsparameter und
125

125

00:05:41,889  -->  00:05:48,159
Funktionen für das LCD in diesen Dateien und
126

126

00:05:45,130  -->  00:05:51,300
Ich rufe diese Datei mit Punkt H in der an
127

127

00:05:48,159  -->  00:05:57,479
schlechtes Support-Paket also, wenn Sie hierher kommen
128

128

00:05:51,300  -->  00:06:01,659
mal sehen, ja, ich repariere das hier
129

129

00:05:57,479  -->  00:06:04,990
so können wir entweder diese beiden und nennen
130

130

00:06:01,659  -->  00:06:07,569
die Hauptdatei, die enthalten soll
131

131

00:06:04,990  -->  00:06:10,569
unsere Fäden und andere Dinge oder wir können
132

132

00:06:07,569  -->  00:06:13,330
schneide es einfach ab und rufe es dann in dir auf
133

133

00:06:10,569  -->  00:06:15,880
das arme support paket damit bei uns
134

134

00:06:13,330  -->  00:06:18,310
Das Board Support Package importieren wir
135

135

00:06:15,880  -->  00:06:21,130
automatisch die Treiber für die
136

136

00:06:18,310  -->  00:06:24,430
LCD auch so schneiden Sie es und kleben Sie die Haare
137

137

00:06:21,130  -->  00:06:27,729
so und es funktioniert immer noch genauso
138

138

00:06:24,430  -->  00:06:31,180
So kann ich wieder aufbauen und du siehst ich immer noch
139

139

00:06:27,729  -->  00:06:33,270
habe null Fehler richtig, das ist also die
140

140

00:06:31,180  -->  00:06:35,589
Das ist die Interface-Datei
141

141

00:06:33,270  -->  00:06:37,810
Implementierungen der APIs wir gerade
142

142

00:06:35,589  -->  00:06:38,960
angeschaut und dazu kommen wir heute
143

143

00:06:37,810  -->  00:06:41,750
Punkt C für
144

144

00:06:38,960  -->  00:06:44,139
Fangen wir also mit dem ABC 0 an
145

145

00:06:41,750  -->  00:06:47,360
Darin ist dies ein Standard-ADC
146

146

00:06:44,139  -->  00:06:51,710
Initialisierung Wir initialisieren einen ADC 0
147

147

00:06:47,360  -->  00:06:55,669
die mit PE 3 verbunden ist, initialisieren wir
148

148

00:06:51,710  -->  00:06:57,710
es als alternative Funktion ADC also ja
149

149

00:06:55,669  -->  00:07:00,050
das ist für die initialisierung und das
150

150

00:06:57,710  -->  00:07:03,530
ist die Funktion, die den ADC zurückgibt
151

151

00:07:00,050  -->  00:07:05,720
Resort und es bringt Sie in 32 Sie zurück
152

152

00:07:03,530  -->  00:07:07,550
Weiß wie gesagt wenn du willst
153

153

00:07:05,720  -->  00:07:09,289
Verstehe, wie das geschrieben steht, wenn du
154

154

00:07:07,550  -->  00:07:11,270
Ich möchte im Allgemeinen wissen, wie man schreibt
155

155

00:07:09,289  -->  00:07:14,180
Peripherietreiber schickst du mir ein
156

156

00:07:11,270  -->  00:07:15,710
Nachricht, die ich gerne entgegennehme
157

157

00:07:14,180  -->  00:07:19,729
Sie durch und Sie können auch überprüfen
158

158

00:07:15,710  -->  00:07:21,889
cortex-m comm Ich gebe Unterricht, wie es geht
159

159

00:07:19,729  -->  00:07:23,900
Schreiben Sie periphere Treiber gibt es eine
160

160

00:07:21,889  -->  00:07:27,380
Abschnitt über kostenlose Lektionen, wo diese
161

161

00:07:23,900  -->  00:07:29,110
Dinge werden so erklärt und geschrieben
162

162

00:07:27,380  -->  00:07:32,660
die Sonde drin und das ist ein Standard
163

163

00:07:29,110  -->  00:07:35,860
GPIO in es begann mit der Initialisierung
164

164

00:07:32,660  -->  00:07:39,560
den GPIO-Port, den wir hier in Port B verwenden
165

165

00:07:35,860  -->  00:07:43,849
Deshalb initialisieren wir eine Uhr für den Port
166

166

00:07:39,560  -->  00:07:47,000
P und dann setzen wir den CH 0 CH 1 CH 2 CH
167

167

00:07:43,849  -->  00:07:49,520
3 als Ausgangspins und dann digital
168

168

00:07:47,000  -->  00:07:53,180
Aktivieren Sie sie dann danach ist dies die
169

169

00:07:49,520  -->  00:07:56,530
die Implementierung von Sonde CH 0 ist es ein
170

170

00:07:53,180  -->  00:07:59,030
Einfach ist ein Stonker und Sonde CH 1
171

171

00:07:56,530  -->  00:08:02,229
Ich werde nur kopieren
172

172

00:07:59,030  -->  00:08:10,759
das legte es hier
173

173

00:08:02,229  -->  00:08:13,490
tako ch1 und tonko ch2 ja der grund
174

174

00:08:10,759  -->  00:08:15,889
warum dieser Code unvollständig aussieht und ich bin
175

175

00:08:13,490  -->  00:08:18,979
keine näheren angaben, da ich alle getestet habe
176

176

00:08:15,889  -->  00:08:20,870
davon für das stm32 board so scheint es a
177

177

00:08:18,979  -->  00:08:25,340
Bit redundant, um genau das gleiche zu tun
178

178

00:08:20,870  -->  00:08:28,240
was für die tiva c board und das ist
179

179

00:08:25,340  -->  00:08:30,800
die Implementierung der Systemkonfiguration und
180

180

00:08:28,240  -->  00:08:33,650
hier haben wir die verzögerungsfunktion da
181

181

00:08:30,800  -->  00:08:35,479
Eine normale Initialisierung des von uns verwendeten Timers
182

182

00:08:33,650  -->  00:08:38,930
Mal möchte ich eine Delay-Funktion bereitstellen
183

183

00:08:35,479  -->  00:08:40,459
und wir initialisieren die Zeit r2 für Interrupts
184

184

00:08:38,930  -->  00:08:42,649
Wir werden Timer verwenden, um uns
185

185

00:08:40,459  -->  00:08:45,350
Hintergrund Thread später in der in der
186

186

00:08:42,649  -->  00:08:49,640
natürlich sowie timer 3 haben wir initialisiert
187

187

00:08:45,350  -->  00:08:51,970
es auch für die Unterbrechung, ja
188

188

00:08:49,640  -->  00:08:54,460
Bereitstellung von 500 Hertz
189

189

00:08:51,970  -->  00:08:57,010
Ich werde das später auch benutzen und
190

190

00:08:54,460  -->  00:08:59,860
dann der weite Timer, von dem ich gesprochen habe
191

191

00:08:57,010  -->  00:09:03,940
Wir werden dies nutzen, um die Zeit zu halten
192

192

00:08:59,860  -->  00:09:07,330
des Systems ist dies die Schnittstellendatei
193

193

00:09:03,940  -->  00:09:10,149
vom lcd und hier drüben hab ich gerade benutzt
194

194

00:09:07,330  -->  00:09:12,760
die find-Anweisung, um symbolisch zu geben
195

195

00:09:10,149  -->  00:09:16,180
Namen zu den GPIO-Pins, die wir brauchen
196

196

00:09:12,760  -->  00:09:18,760
PA sieben PA 3 PA sechs und ich habe definiert
197

197

00:09:16,180  -->  00:09:21,070
Ich habe sie alle neu definiert, damit ich kann
198

198

00:09:18,760  -->  00:09:23,980
Verwenden Sie einfach diese Namen, um auf sie zu verweisen
199

199

00:09:21,070  -->  00:09:26,080
Wir haben auch eine define-Anweisung für erstellt
200

200

00:09:23,980  -->  00:09:29,050
bestimmte anweisungen sowas
201

201

00:09:26,080  -->  00:09:32,020
Setzen von RS-Pin Null Setzen des Rücksetzens
202

202

00:09:29,050  -->  00:09:33,970
Pin zum Absenken des mittleren Befehls auf den
203

203

00:09:32,020  -->  00:09:36,100
symbolischer name also einfach durch anrufen der
204

204

00:09:33,970  -->  00:09:39,820
symbolischer Name dieser Anweisung ist
205

205

00:09:36,100  -->  00:09:41,560
ausgeführt und diese sind konstant farbig
206

206

00:09:39,820  -->  00:09:44,910
Definitionen und diese sind einige
207

207

00:09:41,560  -->  00:09:48,130
Definitionen zu bestimmten Registern der
208

208

00:09:44,910  -->  00:09:53,649
LCD-Bildschirm und diese Schriftart ist die Telefone
209

209

00:09:48,130  -->  00:09:57,400
sind bereit, es ist lange her, das sind diese
210

210

00:09:53,649  -->  00:09:59,680
ap steht für Standardgrafiken zum Zeichnen
211

211

00:09:57,400  -->  00:10:03,220
und Färben und Löschen des Bildschirms und
212

212

00:09:59,680  -->  00:10:05,620
Punkte etc. wieder aufzeichnen würde ich nicht gehen
213

213

00:10:03,220  -->  00:10:08,140
viel in die Details, wenn Sie welche brauchen
214

214

00:10:05,620  -->  00:10:10,300
Hilfe, wenn Sie ein LCD-Projekt erstellen
215

215

00:10:08,140  -->  00:10:12,660
und Sie müssen zeigen, dass Sie können
216

216

00:10:10,300  -->  00:10:16,360
Schreibe LCD-Treiber sende mir eine Nachricht
217

217

00:10:12,660  -->  00:10:19,930
das ist also ein ende hier drüben ich nur ich
218

218

00:10:16,360  -->  00:10:23,230
Führen Sie einfach einen kurzen Test durch, indem Sie eine Verbindung herstellen
219

219

00:10:19,930  -->  00:10:26,170
mein LCD-Bildschirm und Anschließen meines ADC an P
220

220

00:10:23,230  -->  00:10:28,930
III und dann diesen Code ausführen und wenn
221

221

00:10:26,170  -->  00:10:30,910
Wenn du das tust, wirst du sehen, dass das was ist
222

222

00:10:28,930  -->  00:10:33,970
Sie gelangen auf den Bildschirm, während Sie die bewegen
223

223

00:10:30,910  -->  00:10:36,370
Mit dem ADC-Regler sehen Sie den eingezeichneten Wert
224

224

00:10:33,970  -->  00:10:40,240
der Bildschirm wie Sie in diesem sehen
225

225

00:10:36,370  -->  00:10:43,350
Video so ist dies ein sehr kurzes und
226

226

00:10:40,240  -->  00:10:43,350
Ich werde in der nächsten Lektion sehen
