Nghiên cứu ứng dụng vi điều khển ARMSTM32 trong đo lường và điều khiển. Trường DHCN Hà Nôi.

80 553 5
Nghiên cứu ứng dụng vi điều khển ARMSTM32 trong đo lường và điều khiển. Trường DHCN Hà Nôi.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lý do chọn đề tài Các hệ thống nhúng đang được phát triển trên thế giới ngày càng đòi hỏi sử dụng công nghệ cao, không chỉ đơn giản như các hệ thống điều khiển đèn giao thông, điều khiển các biển quảng cáo hiển thị chữ trên LCD mà yêu cầu quá trình xử lý và điều khiển ngày càng phức tạp hơn, như điều khiển các lò phản ứng, các robot di động, truyền thông đa phương tiện, xử lý âm thanh hình ảnh trên các thiết bị di động cần tay. Các hệ thống nhúng này cần sử dụng các loại vi điều khiển tiên tiến với dung lượng bộ nhớ lớn hơn, với độ rộng bít xử lý từ 16 đến 32 bít nhằm giúp cho quá trình xử lý được sinh động và mềm dẻo hơn các loại vi điều khiển thông dụng 8 bít trước đây. Ở nước ta các thiết bị nhúng chủ yếu nhập khẩu từ nước ngoài, chúng ta chưa làm chủ và tự sản xuất được những loại thiết bị này. Vì vậy với đề tài “Nghiên cứu ứng dụng vi điều khển ARMSTM32 trong đo lường và điều khiển.” sẽ góp phần thúc đẩy việc nghiên cứu và phát triển cho các hệ thống nhúng hiện đại trong tương lai.ARM là vi xử lý sẽ thống trị thị trường thế giới trong một hai năm nữa. Sự tiến bộ thần tốc này nhờ vào những tính năng ưu việt như : an toàn, bảo mật, đặc biệt ít tiêu thụ điện năng nhưng vẫn cho hiệu năng tốt.Dựa vào những nhu cầu tìm hiểu về tính năng và đặc điểm ưu việt của dòng chíp ARM, ý tưởng nghiên cứu và ứng dụng vi điều khiển ARM STM32 cụ thể ở đây là STM32 F411 có lõi xử lý là ARMv7E.Nội dung của luận vănĐề tài : Nghiên cứu ứng dụng vi điều khển ARMSTM32 trong đo lường và điều khiển.Giới thiệu về lịch sử phát triển và ứng dụng của ARMKiến trúc phần cứng của ARMGiới thiệu về công cụ lập trình phát triển ARMLập trình với các tài nguyên của vi điều khiển ARMSTM32.

MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT MỞ ĐẦU CHƯƠNG CẤU TRÚC VI ĐIỀU KHIỂN ARM .6 1.1 Lịch sử hình thành phát triển vi điều khiển ARM 1.2 Cấu trúc ARM 1.3 Phân loại .14 1.4 Ứng dụng ARM 17 CHƯƠNG NGOẠI VI CỦA VI ĐIỀU KHIỂN ARM STM32F411VE 19 2.1 Giới thiệu dòng vi điều khiển STM32 19 2.2 Tổ chức nhớ 23 2.3 Khối tạo dao dộng .25 2.4 Giới thiệu GPIO 27 2.5 Ngắt 31 2.6 TIMER 33 2.7 PWM 35 2.8 ADC 37 2.9 I2C 40 2.10 USART 43 CHƯƠNG LẬP TRÌNH ỨNG DỤNG VỚI NGOẠI VI 47 3.1 Giới thiệu kit STM32F411VE(Discovery) 47 3.2 Cách tạo project Keilc V5 49 3.3 Lập trình với GPIO .50 3.4 Lập trình với Ngắt .54 3.5 Lập trình với TIMER 56 3.6 Lập trình với PWM .60 3.7 Lập trình với ADC 64 3.8 Lập trình với I2C 67 3.9 Lập trình với USART 71 KẾT LUẬN 75 TÀI LIỆU THAM KHẢO .77 Danh mục hình vẽ Hình Kiến trúc đường ống ba tầng .13 Hình Kiến trúc đường ống ba tầng tập lệnh có nhiều chu kỳ máy .14 Hình Kiến trúc STM32 nhánh Performance Access 19 Hình Dưới đậy sơ đồ khối ARM STM32F411VE 22 Hình Kiến trúc hệ thống .24 Hình Khối Tạo Dao Động 26 Hình Chân xung kết nối nội ngoại .27 Hình Sơ đồ khối ngắt 32 Hình 10 Ngắt ngồi chip STM32F411VE 32 Hình 11 : Hình ảnh xung PWm .35 Hình 12 Sơ đồ khối ADC 38 Hình 13 Sơ đồ khối giao tiếp I2C 40 Hình 14 Sơ đồ khối I2C .41 Hình 15 Sơ đồ khối USART 44 Hình 16 Sơ đồ khối kit STM32F411 .48 Hình 17 Màm hình làm việc Keilc v5 49 Hình 18 Giao diện hình làm việc 50 Hình 19 Chọn tạo dự án 50 Hình 20 Giao diện chọn chíp 51 Hình 21 Giao diện chíp chân I/O 51 Hình 22 Sơ đồ xung STM32F411 52 Hình 23 Cấu hình Chân vào 52 Hình 24 Giao diện cấu hình án 53 Hình 25 Cấu hình chân cho Ngắt 54 Hình 26 Cấu hình chọn ngắt line0 55 Hình 27 Cấu hình chân TIM 56 Hình 28 Điền thông số cho TIM 57 Hình 29 Cấu hình chân cho PWM 60 Hình 30 Cài thơng số cho chân LED .61 Hình 31 Điền thơng số cho xung PWm 61 Hình 32 Cấu hình chân ADC 64 Hình 33 Cài thông số cho ADC .65 Hình 34 Cấu hình chân cho I2C 67 Hình 35 Thơng số cho I2C 68 Hình 36 Chọn ngắt cho i2C 68 Hình 37 Chọn DMA cho I2C 69 Hình 38 Cấu hình chân cho USART .72 Hình 39 Cấu hình tham số cho USART .72 Danh mục bảng Biểu Bảng 1: Đặc tính vài máy CISC 12 Bảng 2: Đặc tính ba mẫu máy RISC 14 Bảng Bảng mức độ ưu tiên ngắt NVIC 36 Danh mục từ viết tắt ADC Analog to Digital Converter Bộ chuyển đổi tương tự sang số CLK Clock Xung nhịp CMSIS The Cortex Microcontroller Chuẩn giao tiếp phần mềm vi điều khiển Software Interface Standard Cortex DMA Direct Memory Access Sự truy cập nhớ trực tiếp DSP Digital Signal Processors Bộ xử lý tín hiệu số DRAM Dynamic Random Access Bộ nhớ truy cập ngẫu nhiên động Memory EEPROM Electrically Erasable Bộ nhớ đọc xóa Programmable Read-Only điện Memory EPROM GIPO Erasable Programmable Read- Bộ nhớ để đọc có khả lập trình Only Memory lại General Purpose Đầu vào đa mục đích Input/Output Communications PWM Pulse Width Modulation Bộ điều chế độ rộng xung RAM Random Access Memory Bộ nhớ truy nhập ngẫu nhiên ROM Read Only Memory Bộ nhớ đọc RTC Real Time Clock Đồng hồ thời gian thực Rx Receive Nhận liệu SD Card Secure Digital Card Thẻ nhớ liệu số SPI Serial Peripheral Interface Giao tiếp ngoại vi nối tiếp Tx Transmit Truyền liệu TIC Test Interface Controller Bộ giao tiếp kiểm thử UART Universal Asynchronous Bộ thu/phát không đồng đa Receiver/Transmitter MỞ ĐẦU Lý chọn đề tài Các hệ thống nhúng phát triển giới ngày đòi hỏi sử dụng công nghệ cao, không đơn giản hệ thống điều khiển đèn giao thông, điều khiển biển quảng cáo hiển thị chữ LCD mà yêu cầu trình xử lý điều khiển ngày phức tạp hơn, điều khiển lò phản ứng, robot di động, truyền thông đa phương tiện, xử lý âm hình ảnh thiết bị di động cần tay Các hệ thống nhúng cần sử dụng loại vi điều khiển tiên tiến với dung lượng nhớ lớn hơn, với độ rộng bít xử lý từ 16 đến 32 bít nhằm giúp cho trình xử lý sinh động mềm dẻo loại vi điều khiển thơng dụng bít trước Ở nước ta thiết bị nhúng chủ yếu nhập từ nước ngoài, chưa làm chủ tự sản xuất loại thiết bị Vì với đề tài “Nghiên cứu ứng dụng vi điều khển ARM-STM32 đo lường điều khiển.” góp phần thúc đẩy việc nghiên cứu phát triển cho hệ thống nhúng đại tương lai ARM vi xử lý thống trị thị trường giới hai năm Sự tiến thần tốc nhờ vào tính ưu việt : an tồn, bảo mật, đặc biệt tiêu thụ điện cho hiệu tốt Dựa vào nhu cầu tìm hiểu tính đặc điểm ưu việt dòng chíp ARM, ý tưởng nghiên cứu ứng dụng vi điều khiển ARM STM32 cụ thể STM32 F411 có lõi xử lý ARMv7E Nội dung luận văn Đề tài : Nghiên cứu ứng dụng vi điều khển ARM-STM32 đo lường điều khiển - Giới thiệu lịch sử phát triển ứng dụng ARM - Kiến trúc phần cứng ARM - Giới thiệu công cụ lập trình phát triển ARM - Lập trình với tài nguyên vi điều khiển ARM-STM32 Chương CẤU TRÚC VI ĐIỀU KHIỂN ARM 1.1 Lịch sử hình thành phát triển vi điều khiển ARM Cuối năm 1978, Hermann Hauser Chris Curry thành lập Công ty Acorn Computers, Ltd Cambridge - Anh quốc hãng tiếng với họ vi xử lý kiến trúc arm dùng phổ biến thiết bị nhúng ứng dụng cầm tay nhờ vào đặc tính ưu việt tiêu thụ điện hầu hết máy điện thoại di động máy pda có cpu theo kiến trúc arm Sau bước khởi đầu nghiên cứu phát triển, Hauser Curry chọn xử lý công nghệ MOS 6502 cho dự án - vi xử lý bít giá rẻ thị trường thời điểm tính dễ lập trình, tốc độ xử lý, độ tin cậy tương đương với vi xử lý khác Ngoài ra, 6502 tiếng với khả xử lý ngắt tốc độ chậm nó, làm dễ dàng xử lý kiện ngắt từ bên ngồi 6502 có thiết kế đơn giản, có 3.510 transistor (so với 6.500 transistor vi xử lý 8085, 8.500 transistor Z80) 6502 xuất nhiều thương hiệu máy tính tiếng lịch sử máy tính Apple II, Atari 2600 Commodore VIC-20 Sau đó, Arcon tiếp tục thắng hợp đồng tiếp tục sử dụng 6502 cho dự án Với kinh nghiệm vi xử lý 6502, Acorn phát triển nên Acorn System - thiết kế Sophie Ilson dựa 6502 Nó bao gồm hai bảng mạch: bảng phía chứa nút bấm hexa hình nhỏ, hiển thị liệu, bảng mạch chứa vi xử lý mạch điện hỗ trợ Một phần mềm giám sát đơn giản ROM cho phép soạn thảo nhớ phần mềm lưu trữ băng cassette Vào tháng năm 1985 Nhóm thiết kế hồn thành việc phát triển mẫu gọi ARM1, Chip ARM1 xây dựng từ khối chức năng, khối có mục đích khác Các ghi lưu trữ liệu, ALU (đơn vị logic số học) thực số học đơn giản, giải mã lệnh xác định cách xử lý lệnh, v.v So với hầu hết xử lý, bố cục chip đơn giản, với khối chức nhìn thấy rõ ràng (So sánh, cách bố trí chip 6502 Z-80 tối ưu hóa tay để tránh khơng gian bị lãng phí Trong chip này, khối chức đặt cạnh nhau, khiến việc lấy mảnh khó hơn.) Năm 1986, nhóm hồn thành sản phẩm ‘’thực’’ gọi ARM2 ARM2 có tuyến liệu 32-bit, không gian địa 26-bit tức cho phép quản lý đến 64 Mbyte địa 16 ghi 32-bit Một ghi đóng vai trò đếm chương trình với bit cao bit thấp lưu giữ cờ trạng thái vi xử lý Có thể nói ARM2 vi xử lý 32-bit khả dụng đơn giản giới, với gồm 30.000 transistor (so với vi xử lý lâu bốn năm Motorola 68000 với khoảng 68.000 transistor) Thế hệ sau, nâng cấp xử lý IFEL ARM3 cho Acorn Archimedes Bản nâng cấp xử lý IFEL ARM3 thay CPU ARM2 cắm dải máy tính Archimedes chạy tốc độ MHz Một bảng gắn vào ổ cắm ARM2 Archimedes có CPU ARM3 chạy tốc độ 25 MHz cung cấp thông lượng MIPS tăng gần gấp ba lần Việc tăng hiệu suất đạt cách sử dụng đệm 4KB bo mạch khả ARM3 để chạy tốc độ xung nhịp nhanh Kết hợp tác ARM6 Mẫu công bố vào năm 1991 Apple sử dụng vi xử lý ARM 610 dựa ARM6 làm sở cho PDA hiệu Apple Newton Vào năm 1994, Acorn dùng ARM 610 làm CPU máy vi tính Risc PC họ Thế hệ thành cơng có lẽ ARM7TDMI với hàng trăm triệu lõi sử dụng máy điện thoại di động, hệ thống video game cầm tay, Sega Dreamcast Hãng DEC bán giấy phép lõi cấu trúc ARM (đôi bị nhầm lẫn họ sản xuất DEC Alpha) sản xuất hệ Strong ARM Hoạt động tần số 233 MHz mà CPU tiêu tốn khoảng watt công suất (những đời sau tiêu tốn cơng suất nữa) Sau kiện tụng, Intel chấp nhận sản xuất ARM Intel nắm lấy hội để bổ sung vào hệ già cỗi i960 họ Strong ARM Từ đó, Intel phát triển cho họ sản phẩm chức cao gọi tên Xscale 1.1.1 Vi xử lý ARM Vi xử lý ARM đời năm 1985 với thiết kế RISC viết tắt reduced instruction set computer máy tính có tập lệnh rút gọn, vi xử lý ARM sử dụng chủ yếu điện thoại di động 1.1.2 Vi điều khiển ARM Cấu trúc ARM (viết tắt từ tên gốc Acorn RISC Machine) loại cấu trúc vi xử lý 32-bit kiểu RISC sử dụng rộng rãi thiết kế nhúng Được phát triển lần đầu dự án cơng ty máy tính Acorn Do có đặc điểm tiết kiệm lượng, CPU ARM chiếm ưu sản phẩm điện tử di động, mà với sản phẩm việc tiêu tán công suất thấp mục tiêu thiết kế quan trọng hàng đầu Ngày nay, 75% CPU nhúng 32-bit thuộc họ ARM, điều khiến ARM trở thành cấu trúc 32-bit sản xuất nhiều giới Một nhánh tiếng họ ARM vi xử lý Xscale Intel Giới thiệu vi điều khiển LPC2148: Là dòng vi điều khiển ARM sản xuất hãng Philips Tính năng: - Vi điều khiển 16/32-bit ARM7TDMI-S - 40k RAM tĩnh (8k +32k), 512k flash - Tích hợp USB 2.0 - Hộ trợ hai ADC 10 bit - Một DAC 10 bit - timer 32 bit, ngõ điều chế độ rộng xung - Đồng hồ thời gian thực hỗ trợ tần số 32kHz - Khả thiết lập chế độ ưu tiên định địa cho ngắt - 45 chân GPIO vào đa dụng - chân ngắt ngồi (tích cực cạnh tích cực mức) - CPU clock đạt tối đa 60MHz thông qua PLL lập trình - Xung PLCK hoạt động độc lập On-chip Flash Memory: LPC 2148 có 512K nhớ Flash dùng để lưu trữ code liệu Trong thực thi ứng dụng, xóa lập trình Flash thơng qua IAP (In Application Programming) Khi trình loader chip sử dụng, nhớ trống lại 500K Bộ nhớ Flash ghi xóa 100000 lần, lưu trữ liệu đến 20 năm On-chip Static RAM: LPC 2148 có 32K RAM tĩnh, truy xuất theo đơn vị byte, half word & word Bộ điều khiển SRAM sử dụng phương thức write-back buffer để ngăn chặn tình trạng treo CPU có thao tác ghi Bộ đệm giữ liệu cuối từ chương trình gửi tới nhớ Dữ liệu ghi vào SRAM có thao tác ghi khác từ chương trình Lập trình cho ARM: Ngơn ngữ lập trình cho ARM ngơn ngữ C Các trình biên dịch cho ARM thường dùng: 1.2 - Keil ARM - IAR - HTPICC for ARM - ImageCraft ICCV7 for ARM Cấu trúc ARM 1.2.1 Kiến trúc thiết kế RISC ARM ARM xây dựng vi xử lý theo kiến trúc RISC năm 1980 để sử dụng máy tính cá nhân Những kiến trúc RISC đầu tiên: IBM (IBM 801) Berkeley (RISC1 Patterson) Stanford (MIPS Hennessy) CISC - Complex Instruction Set Computer Bảng 1: Đặc tính vài máy CISC kiến trúc với tập lệnh phức tạp CISC (Complex Instruction Set Computer) nghĩ từ năm 1960 Vào thời kỳ này, người ta nhận thấy chương trình dịch khó dùng ghi, vi lệnh thực nhanh lệnh cần thiết phải làm giảm độ dài chương trình Các đặc tính nầy khiến người ta ưu tiên chọn kiểu ô nhớ - ô nhớ ô nhớ - ghi, với lệnh phức tạp dùng nhiều kiểu định vị Điều dẫn tới việc lệnh có chiều dài thay đổi dùng điều khiển vi chương trình hiệu Bảng cho đặc tính vài máy CISC tiêu biểu Ta nhận thấy ba máy có điểm chung có nhiều lệnh, lệnh có chiều dài thay đổi Nhiều cách thực lệnh nhiều vi chương trình dùng Ưu điểm: - Chương trình ngắn so với kiến trúc RISC - Số lệnh để thực chương trình - Khả thâm nhập nhớ dễ dàng - Các xử lý CISC trợ giúp mạnh ngôn ngữ cao cấp nhờ có tập lệnh phức tạp Hãng Honeywell chế tạo máy có lệnh cho động từ ngơn ngữ COBOL Nhược điểm: - Diện tích xử lý dùng cho điều khiển lớn Giảm khả tích hợp thêm vào vi xử lý - Tốc độ tính tốn chậm 10 HAL_TIM_SET_COMPARE(&htim4,TIM_CHANNEL_4,pwm); HAL_Delay(10); } } 3.7 Lập trình với ADC - Mở phầm MỀM STM32 CubeMX - Chọn new project - Chọn tìm chíp STM32F411VETx Cài xung nhịp đầu chọn PH0 chế độ RCC_OSC_IN PH1 chế độ RCC_OSC_OUT - Trong phần ADC1 chọn Temperature Sensor Channel (đo nhiệt độ chíp) Hình 31 Cấu hình chân ADC Bên thẻ Clock Configuration chọn xung nhịp đầu vào 8M -> chọn HSE -> chọn chia -> chọn nhân 200 -> chọn chia -> PLLCK -> APB1 Prescaler chia 66 Trong thẻ Trong thẻ Configuration chọn NVIC ta tích vào ADC1 global interrupt - Trong thẻ Trong thẻ Configuration chọn ADC1 Cấu sau : Cấu hình Hình 32 Cài thông số cho ADC Trong mục ADC_setting - Clock prescaler : chia tần số đầu vào cho ADC ADC lấy mẫu điện áp đầu vào cho số chu kỳ ADCCLK sửa đổi sử dụng bit SMP [2: 0] ghi ADC_SMPR1 ADC_SMPR2 Mỗi chennal lấy mẫu với thời gian lấy mẫu khác Tổng thời gian chuyển đổi tính sau: T_conv = Thời gian lấy mẫu + 12 chu kỳ Thí dụ: Với ADCCLK = 25 MHz ( chọn chia tần số đầu vào = 4, xung hệ thống cấp cho ADC = 100MHz ) thời gian lấy mẫu = 144 chu kỳ T_conv = 144 + 12 = 156 chu kỳ = 6.24 µs 67 Resolution : độ phân giải modum ADC từ đến 12 bit độ phân giải càn cao giá trị trả trính xác ngược lại xẽ nhiều thời gian vàn lượng Bộ ADC STM32F411 có độ phân giải 12bit mà ta phải cần lưu trữ vào ghi 16 bit, thừa bit Chúng ta cấu hình việc lề cho 12 bit nằm bên phải hay bên trái ghi 32 bit mục Data Aligment Mục Scan Conversion Mode sử dụng để “quét” qua chennal ADC trình đọc liệu, ta sử dụng chế độ đơn chennal nên chế độ khơng có tác dụng, ta giữ nguyên Mục Continous Conversion Mode định cho ADC có sử dụng chế độ chuyển đổi liên tục hay không Chọn Enabled Nếu không enable mode này, sau lần chuyển đổi, ta phải gọi lại lệnh đọc giá trị ADC để bắt đầu trình chuyển đổi Tại mục Sampling Time, chọn thời gian lấy mẫu q trình số hóa Tùy vào ứng dụng mà chọn thời gian lấy mẫu cho phù hợp Lưu ý: thời gian lấy mẫu ngắn, việc tái thiết tín hiệu xác lượng tiêu tốn cao Sau ta xin code: #include "main.h" #include "stm32f4xx_hal.h" ADC_HandleTypeDef hadc1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_ADC1_Init(void); uint16_t adc=0; // luu gia tri ADC // int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); HAL_ADC_Start_IT(&hadc1); 68 while (1) { } } void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { if(hadc->Instance==hadc1.Instance) { adc = HAL_ADC_GetValue(hadc); // doc gia tri ADC ve // } } 3.8 Lập trình với I2C - Mở phầm MỀM STM32 CubeMX - Chọn new project - Chọn tìm chíp STM32F411VETx Cài xung nhịp đầu chọn PH0 chế độ RCC_OSC_IN PH1 chế độ RCC_OSC_OUT - I2c cho hoạt động chế độ thường (chọn I2C) 69 Hình 33 Cấu hình chân cho I2C Bên thẻ Clock Configuration chọn xung nhịp đầu vào 8M -> chọn HSE -> chọn chia -> chọn nhân 200 -> chọn chia -> PLLCK -> APB1 Prescaler chia - Bên thẻ Trong thẻ Configuration chọn I2C Cấu sau : 70 Hình 34 Thơng số cho I2C Trong mục Parameter Setiings I2C speed mode chọn fast mode I2C clock speed chọn max tốc độ 400M Còn lại bạn nguyên Tiếp theo sang mục NVIC Setiings tích vào I2C event Interrupt Hình 35 Chọn ngắt cho i2C Trong mục DMA Setiings chọn Add thên trường 71 Hình 36 Chọn DMA cho I2C Trong DMA Request chọn I2C1_RX Trong DMA Request settings chọn mode Circular (vòng tròn) Sau ta tiến hành xin code #include "main.h" #include "stm32f4xx_hal.h" I2C_HandleTypeDef hi2c1; DMA_HandleTypeDef hdma_i2c1_rx; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_DMA_Init(void); static void MX_I2C1_Init(void); 72 uint8_t BCD2DEC(uint8_t data); // chuyển số từ dạng BCD số thập phân // uint8_t DEC2BCD(uint8_t data); // chuyển số từ dạng thập phân số BCD // uint8_t giay,phut,gio,thu,ngay,thang,nam; // lưu giá trị đọc // #define DS3231_ADD 0x68 uint8_t receive_data[7],send_data[7]; int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_DMA_Init(); MX_I2C1_Init(); while (1) { HAL_I2C_Mem_Read_DMA(&hi2c1,DS3231_ADD>4)*10 + (data&0x0f); // hàm truyển đổi từ BCD thập phân // } uint8_t DEC2BCD(uint8_t data) { return(data/10) chọn chia -> chọn nhân 200 -> chọn chia -> PLLCK -> APB1 Prescaler chia - Bên thẻ Trong thẻ Configuration chọn USART 1cấu sau: Hình 38 Cấu hình tham số cho USART Trong thẻ Parameter settings: Baud Rate : chọn tốc độ chuyền 250000 (tốc độn TB, giá trị truyền chủa USART phải nhau) 75 - Word Length : độ dài khung truyền để bit Các giá trị khác nguyên Tiếp theo cài USART2 tương tự Bên thẻ Trong thẻ Configuration chọn NVIC ta tích vào USART1 global interrup USART2 global interrup nhấn ok Sau ta tiến hành xin code #include "main.h" #include "stm32f4xx_hal.h" UART_HandleTypeDef huart1; UART_HandleTypeDef huart2; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART2_UART_Init(void); // bat modul USART // static void MX_USART1_UART_Init(void); // bat modul USART // uint8_t send_data=32,riceive_data=0,echo_riceive_data=0; // bien luu tru du lieu // int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART2_UART_Init(); MX_USART1_UART_Init(); HAL_UART_Receive_IT(&huart2,&riceive_data,1); // cho phép ngat USART 2// HAL_UART_Receive_IT(&huart1,&echo_riceive_data,1);// cho phép ngat USART 1// while (1) { 76 HAL_UART_Transmit_IT(&huart1,&send_data,1); // ham truyen du lieu UART cho UART 2// send_data++; HAL_Delay(999); } } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance==huart1.Instance) { HAL_UART_Receive_IT(&huart1,&echo_riceive_data,1); } if(huart->Instance==huart2.Instance) { HAL_UART_Transmit_IT(&huart2,&riceive_data,1);// ham truyen du lieu UART cho UART 2// HAL_UART_Receive_IT(&huart2,&riceive_data,1);// sau moi lam truyen ta bat lai ngat cho uart // } } 77 KẾT LUẬN NHỮNG KẾT QUẢ ĐẠT ĐƯỢC Tuy thời gian thực tập không nhiều để lại cho em kiến thức bổ ích kinh nghiệm giúp ích cho em sau làm việc tốt Em có kiến thức kinh nghiệm giúp đỡ tận tình Thầy Th.s Phạm Văn Chiến suốt trình thực tập giúp cho em học hỏi thêm nhiều điều Những kĩ làm việc báo cáo em có chút tiến Em đạt việc sau : - Học cách viết báo cáo hoản chỉnh - Em trải nghiệm phầm mềm KeilC, CubeMX em biết cách tạo Dự án nhúng ứng dụng cho ARM - Học cách làm việc theo thời gian, phân bổ công việc cho phù hợp BÀI HỌC KINH NGHIỆM Theo em nghĩ để làm tốt công việc hay làm tốt công nghệ thông tin, điều cần thiết khơng có kiến thức lý thuyết trường lớp mà cần có kinh nghiệm thực tế trình làm việc Một kinh nghiệm quan khơng kỹ mềm Nó vốn sống ta làm cơng việc đó, kỹ giao tiếp, kỹ ứng xử với người thái độ lúc làm việc cấp giao phó Bên cạnh làm việc nhóm giúp làm việc hiệu suất làm việc cao Tuy nhiên, ta làm việc độc lập giúp ích cho ta nhiều làm cơng việc mà cấp đòi hỏi người làm Và ta nên học hỏi người xung quanh để rút kinh nghiệm cho thân Đọc hiều tài liệu quan trọng cho làm việc NHỮNG ĐIỀU CHƯA ĐẠT ĐƯỢC Trong trình thực tập, em chưa nghiên cứu sâu giao tiếp có chíp 78 Q nhiều câu lệnh để xây dựng dịch vụ trở nên cách hoàn thiện KẾT LUẬN Trong trình thực tập, em có hội làm quen mơi trường làm việc Em tính lũy kinh nghiệm kiến thức công việc kinh nghiệm kỹ mềm Em rèn luyện kĩ giải công việc theo giai đoạn, cố gắng hồn thành cơng việc thời gian cho phép, mạnh dạn trao đổi chia sẻ kiến thức Đồng thời bồi dưỡng thêm nhiều kiến thức kiến thức học trường lớp 79 TÀI LIỆU THAM KHẢO TÀI LIỆU TIẾNG VIỆT [1] PGS.TS Trần Ngọc Thịnh báo cáo mơn học kiến trúc máy tính nâng cao tìm hiểu CISC RISC TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM [2] Trường Xuân Thắng Giao Tiếp Với Vi Điều Khiển ARM TRƯỜNG ĐAI HỌC QUỐC GIA HÀ NỘI TÀI LIỆU TIẾN ANH [3] STMicroelectronics STM 32F411 Reference Manual ( 2018 ) [4] STMicroelectronics Description Of Stm32f4 HAL And LL Drivers ( 2017 ) [5] STMicroelectronics STM32F4111 Data Sheet (2016 ) MỘT SỐ TRANG WEB [4] https://en.wikichip.org/wiki/arm_holdings [5] http://cadcamvietnam.blogspot.com/2012/05/cortex-la-gi-kien-truc-co-ban-cuasmt32.html [6] http://laptrinharmst.blogspot.com/2018/03/bai-09-adc-trong-stm32f103.html [7] http://vidieukhien.xyz/vi/2018/03/22/bai-7-stm32f4-usart/ [8] http://qlkh.tnu.edu.vn/theme/details/1436/vi-dieu-khien-arm-va-mo-phong-tronghe-thong-nhung 80 ... trình Điều dẫn tới việc đưa vào khái niệm máy tính với tập lệnh rút gọn RISC vào đầu năm 1980 Các máy RISC dựa chủ yếu tập lệnh cho phép thực kỹ thuật ống dẫn cách thích hợp cách thiết kế lệnh... ống ba tầng để minh họa bước thực thi lệnh: fetch – decode – excute (nhận lệnh – giải mã – thực thi) Hình Kiến trúc đường ống ba tầng Trong kiến trúc đường ống, lệnh thực thi lệnh thứ hai giải... việc thực công đoạn giảm, điều cho phép xử lý phải đạt đến tần số hoạt động cao để tăng hiệu suất thực thi Thời gian trễ hệ thống tăng lên có nhiều chu kỳ để lấp đầy đường ống trước lõi xử lý thực

Ngày đăng: 04/04/2019, 22:00

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan