GPIO trong Cortex-M3 LPC1768 Vi điều khiển là thiết bị ngoại vi cơ bản nhất. GPIO, Mục đích chung Đầu vào đầu vào là những gì chúng ta hãy vi điều khiển của bạn được một cái gì đó nhiều hơn một bộ xử lý phụ trợ yếu. Với nó, bạn có thể tương tác với thế giới vật lý, kết nối các thiết bị khác và biến vi điều khiển của bạn thành một cái gì đó hữu ích. GPIO có hai chế độ hoạt động cơ bản, đầu vào và đầu ra. Đầu vào cho phép bạn đọc điện áp trên một pin, để xem liệu nó có được giữ ở mức thấp (0V) hay cao (3V) và xử lý thông tin đó theo chương trình. Đầu ra cho phép bạn đặt điện áp trên một chân, một lần nữa là cao hay thấp.
Mỗi chốt trên LPC1768 có thể được sử dụng như pin GPIO và có thể được đặt độc lập để hoạt động như đầu vào hoặc đầu ra. Trong hướng dẫn tiếp theo, chúng tôi sẽ hướng dẫn bạn cách đạt được mục tiêu này. Tôi có nghĩa là đọc trạng thái của chuyển đổi và làm cho đèn LED nhấp nháy. Nhưng bây giờ chúng ta chỉ cần nhìn vào những điều cơ bản, điều rất quan trọng để hiểu trước khi chúng ta đi và xây dựng ứng dụng. Tùy thuộc vào phiên bản LPC17xx pinout có thể khác nhau. Ở đây chúng tôi sẽ tập trung vào 100 pin LPC1768 làm ví dụ. Vui lòng giữ LPC1768 Hướng dẫn sử dụngvới bạn [Chương: 9, Trang số: 129]. ghim trên LPC1768 được chia thành 5 nhóm (PORT) bắt đầu từ 0 đến 4. Quy ước đặt tên pin: P0.0 (nhóm 0, pin 0) hoặc (cổng 0, pin 0). Mỗi chốt có 4 chế độ hoạt động: GPIO (mặc định), chức năng thay thế thứ nhất, chức năng thay thế thứ 2, chức năng thay thế thứ 3. Hầu như tất cả các chân GPIO được cấp nguồn tự động vì vậy chúng tôi không cần bật chúng luôn. Chúng ta hãy xem chi tiết về cấu hình của các chân cổng GPIO này.
1. Cài đặt chức năng Pin
Các LPC_PINCON chế độ kiểm soát đăng ký hoạt động của các pin.
LPC_PINCON -> PINSEL0 [1: 0] kiểm soát chế độ hoạt động của PIN 0.0 .
[Số trang: 102, Bảng: 74].
…….
LPC_PINCON -> PINSEL0 [31:30] kiểm soát chế độ hoạt động của PIN 0.15 .
LPC_PINCON -> PINSEL1 [1: 0] điều khiển chế độ hoạt động PIN 0.16 .
…… ..
LPC_PINCON -> PINSEL1 [29:28] kiểm soát chế độ hoạt động PIN 0,30 .
LPC_PINCON -> PINSEL2 [1: 0] điều khiển chế độ vận hành PIN 1.0 .
…… ..
LPC_PINCON -> PINSEL2 [31:30] kiểm soát mã PIN 1.15chế độ hoạt động
LPC_PINCON -> PINSEL3 [1: 0] điều khiển PIN 1.16 chế độ hoạt động
………
LPC_PINCON -> PINSEL3 [31:30] điều khiển PIN 1.31 chế độ hoạt động
…… ..
LPC_PINCON -> PINSEL9 [25:24] điều khiển PIN 4.28 hoạt động chế độ
LPC_PINCON -> PINSEL9 [27:26] điều khiển chế độ hoạt động PIN 4.29
LPC_PINCON -> PINSEL0 [1: 0] kiểm soát chế độ hoạt động của PIN 0.0 .
[Số trang: 102, Bảng: 74].
…….
LPC_PINCON -> PINSEL0 [31:30] kiểm soát chế độ hoạt động của PIN 0.15 .
LPC_PINCON -> PINSEL1 [1: 0] điều khiển chế độ hoạt động PIN 0.16 .
…… ..
LPC_PINCON -> PINSEL1 [29:28] kiểm soát chế độ hoạt động PIN 0,30 .
LPC_PINCON -> PINSEL2 [1: 0] điều khiển chế độ vận hành PIN 1.0 .
…… ..
LPC_PINCON -> PINSEL2 [31:30] kiểm soát mã PIN 1.15chế độ hoạt động
LPC_PINCON -> PINSEL3 [1: 0] điều khiển PIN 1.16 chế độ hoạt động
………
LPC_PINCON -> PINSEL3 [31:30] điều khiển PIN 1.31 chế độ hoạt động
…… ..
LPC_PINCON -> PINSEL9 [25:24] điều khiển PIN 4.28 hoạt động chế độ
LPC_PINCON -> PINSEL9 [27:26] điều khiển chế độ hoạt động PIN 4.29
LƯU Ý: một số bit đăng ký được dành riêng và không được sử dụng để kiểm soát pin chẳng hạn,
LPC_PINCON -> PINSEL9 [23: 0] được đặt trước.
LPC_PINCON -> PINSEL9 [31:28] đã được đặt trước.
LPC_PINCON -> PINSEL9 [23: 0] được đặt trước.
LPC_PINCON -> PINSEL9 [31:28] đã được đặt trước.
Giá trị bit | Chức năng |
00 | Chức năng GPIO |
01 | 1 st chức năng thay thế |
10 | 2 nd chức năng thay thế |
11 | Hàm thứ 3 thay thế |
Ví dụ:
Để đặt pin 0,3 thành GPIO (đặt bit tương ứng thành 00)
LPC_PINCON -> PINSEL0 & = ~ ((1 << 7) | (1 << 6));
Để đặt pin 0,3 thành GPIO (đặt bit tương ứng thành 00)
LPC_PINCON -> PINSEL0 & = ~ ((1 << 7) | (1 << 6));
Để đặt mã 0,3 là kênh ADC 0.6 ( chức năng thay thế thứ 2 , đặt bit tương ứng thành 10)
LPC_PINCON -> PINSEL0 & = ((1 << 7) | (0 << 6)); // bạn có thể bỏ qua (0 << 6)
Để tham khảo [Trang số: 117, Bảng: 80]
LPC_PINCON -> PINSEL0 & = ((1 << 7) | (0 << 6)); // bạn có thể bỏ qua (0 << 6)
Để tham khảo [Trang số: 117, Bảng: 80]
2. Cài đặt hướng pin
Đăng ký LPC_GPIOn -> FIODIR [31: 0] điều khiển đầu vào / đầu ra của pin, trong đó 'n' là viết tắt của nhóm pin (0-4). Để đặt ghim làm đầu ra, hãy đặt bit tương ứng thành '1'. Để đặt ghim làm đầu vào, hãy đặt bit tương ứng thành '0', theo mặc định, tất cả các chân được đặt làm đầu vào (tất cả các bit là 0).
Ví dụ:
Để đặt 0,3 làm đầu ra
LPC_GPIO -> FIODIR | = (1 << 3);
Ví dụ:
Để đặt 0,3 làm đầu ra
LPC_GPIO -> FIODIR | = (1 << 3);
3. Pin được đặt làm đầu ra
Pin
LPC_GPIOn -> FIOSET được sử dụng để biến pin thành HIGH. Đăng ký LPC_GPIOn -> FIOCLR được sử dụng để biến một pin xuống thấp. Để biến một pin thành số '1' (cao), hãy đặt bit tương ứng của LPC_GPIOn -> FIOSETthành 1. Để xoay ghim thành số '0' (thấp), hãy đặt bit tương ứng của LPC_GPIOn -> FIOCLR thành 1.
Ví dụ
Turn Pin 0.3 thành
LPC_GPIO0 cao -> FIOSET | = (1 << 3);
Nếu chúng ta đặt LPC_GPIOn -> FIOSET bit thành '0' thì không có hiệu lực.
Biến Pin 0,3 thành thấp
LPC_GPIO0 -> FIOCLR | = (1 << 3);
Nếu chúng ta đặt LPC_GPIOn -> FIOCLR bit thành '0' thì không có hiệu lực.
LPC_GPIOn -> FIOSET được sử dụng để biến pin thành HIGH. Đăng ký LPC_GPIOn -> FIOCLR được sử dụng để biến một pin xuống thấp. Để biến một pin thành số '1' (cao), hãy đặt bit tương ứng của LPC_GPIOn -> FIOSETthành 1. Để xoay ghim thành số '0' (thấp), hãy đặt bit tương ứng của LPC_GPIOn -> FIOCLR thành 1.
Ví dụ
Turn Pin 0.3 thành
LPC_GPIO0 cao -> FIOSET | = (1 << 3);
Nếu chúng ta đặt LPC_GPIOn -> FIOSET bit thành '0' thì không có hiệu lực.
Biến Pin 0,3 thành thấp
LPC_GPIO0 -> FIOCLR | = (1 << 3);
Nếu chúng ta đặt LPC_GPIOn -> FIOCLR bit thành '0' thì không có hiệu lực.
4. Pin được đặt thành đầu vào
- Đọc
Đăng ký Giá trị Pin LPC_GPIOn -> FIOPIN lưu trữ trạng thái pin hiện tại. Bit tương ứng là '1' chỉ ra rằng pin được điều khiển cao.
Ví dụ
Để đọc trạng thái hiện tại của
giá trịPin 0.3= ((LPC_GPIO0 -> FIOPIN & (1 << 3)) >> 3);
Lưu ý:viết 1/0 cho bit tương ứng trong LPC_GPIOn-> FIOPIN có thể thay đổi đầu ra của pin thành 1/0 nhưng không được khuyến nghị. Chúng ta nên sử dụng LPC_GPIOn -> FIOSET và GPIOn-> FIOCLR. - Pin Nội bộ Kéo lên Thiết lập
Đăng ký LPC_PINCON -> PINMODEn được sử dụng để thiết lập một pin nội pull-up.
LPC_PINCON -> PINMODE0 [1: 0] điều khiển P0.0 pull-up nội bộ
… ..
LPC_PINCON -> PINMODE0 [31:30] điều khiển P0.15 nội bộ pull-up,
Vui lòng xem LPC_PINCON -> PINSELn cho danh sách đầy đủ [Trang Số: 114].Giá trị bit Chế độ pin 00 Đã bật điện trở kéo lên chip 01 Chế độ lặp 10 Chế độ Tri-State, (không kéo và kéo xuống) 11 Đã bật điện trở kéo xuống của chip Ví dụ:
Theo mặc định tất cả các chân được đặt làm đầu vào có nội bộ kéo lên trên (00).Để tắt nội bộ pull-up trên pin 0.3
LPC_PINCON -> PINSEL0 | = (1 << 7);
Không có nhận xét nào:
Đăng nhận xét