Trong nhiều năm trước, các dòng vi điều khiển 8051 được sinh viên dùng nhiều với tính năng đơn giản, dễ sử dụng; AVR được sử dụng nhiều trong các cuộc thi Robocon nhờ tốc độ sử lý khá cao, ổn định; PIC với ưu thế tốc độ cao, chi phí thấp hơn cũng được nghiên cứu, sử dụng nhiều. Nhưng trong một vài năm trở lại đây, có một dòng vi điều khiển mới, càng ngày càng nắm vị trí quan trọng trong các lĩnh vực đòi hỏi tốc độ xử lý cao, sản xuất các dòng diện thoại di động smartphone, giám sát, an ninh… Đó là họ vi điều khiển ARM. Với rất nhiều thế hệ ra đời, với nhiều tính năng, công dụng khác nhau.
Lời cảm ơn LỜI CẢM ƠN Để hoàn thành đồ án kết toàn nỗ lực thân em suốt thời gian theo học trường, toàn lực em bắt tay vào q trình nghiên cứu Để có kết ngày hôm chúng em không quên giúp đỡ giảng dạy nhiệt tình Thầy, Cơ khoa Điện – Điện Tử - Học Viên Công Nghệ Bưu Chính Viên Thơng Các Thầy, Cơ đội ngũ trước am hiểu lĩnh vực khoa học kỹ thuật tận tình giảng dạy giúp chúng em hoàn thành nhiều đề tài Em xin chân thành cảm ơn cô Vũ Anh Đào tận tình dạy, hướng dẫn đóng góp ý kiến q báu giúp em hồn thành đề tài thời gian quy định Em xin cảm ơn đến người bạn thân không ngại chia sẻ kinh nghiệm làm đề tài hỗ trợ cơng việc để giúp nhóm em hồn thành tốt đề tài Em xin cảm ơn ! SVTH: Ngô Minh Đức-D12XLTH Mục lục MỤC LỤC SVTH: Ngô Minh Đức-D12XLTH Danh mục hình vẽ DANH MỤC HÌNH VẼ SVTH: Ngô Minh Đức-D12XLTH Danh mục ký hiệu chữ viết tắt DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt ADC Analog to Digital Converter Bộ chuyển đổi tương tự sang số DAC Digital to Analog Converter Bộ chuyển đổi số sang tương tự DSP Digital Signal Processing Xử lý tín hiệu số ITO Indium Tin Oxide Một hợp chất oxit thiếc SPI Serial Peripheral Interface Giao thức truyền thông SPI PCB Printed Circuit Board Bảng mạch in UART Universal Asynchronous Receiver/Transmitter Truyền thông nối tiếp không đồng USB Universal Serial Bus Chuẩn kết nối USB WIFI Wireless Fidelity Mạng không dây DMA Direct Memory Access Kênh truy nhập nhớ VDK Vi điều khiển SVTH: Ngô Minh Đức-D12XLTH Lời mở đầu LỜI MỞ ĐẦU Ngày với phát triển ngành điện tử ứng dụng điện tử giúp sáng tạo người trở thành thực Các lĩnh vực sống áp dụng thiết bị điện tử dường nhìn đâu gia đình có thiết bị điện tử Ngành điện tử ứng dụng điện tử tạo chỗ đứng khẳng định tầm quan trọng nhu cầu người Với ứng dụng cho hệ thống nhúng ngày trở nên phổ biến, từ ứng dụng đơn giản điều khiển chốt đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển tốc độ động điện chiều, đồng hồ thời gian thực.Đến ứng dụng phức tạp hệ thống điều khiển robot, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Các hệ thống tự động trước sử dụng nhiều công nghệ khác hệ thống tự động hoạt động ngun lý khí Các thiết bị, hệ thống có chức xử lý mức độ tự động thấp so với hệ thống tự động đại xây dựng tảng hệ thống nhúng Trong nhiều năm trước, dòng vi điều khiển 8051 sinh viên dùng nhiều với tính đơn giản, dễ sử dụng; AVR sử dụng nhiều thi Robocon nhờ tốc độ sử lý cao, ổn định; PIC với ưu tốc độ cao, chi phí thấp nghiên cứu, sử dụng nhiều Nhưng vài năm trở lại đây, có dòng vi điều khiển mới, ngày nắm vị trí quan trọng lĩnh vực địi hỏi tốc độ xử lý cao, sản xuất dòng diện thoại di động smartphone, giám sát, an ninh… Đó họ vi điều khiển ARM Với nhiều hệ đời, với nhiều tính năng, cơng dụng khác Với nhiều tính vượt trội ARM xu lựa chọn dòng vi điều khiển Việt Nam nên đồ án tốt nghiệp này, giúp đỡ Cô Vũ Anh Đào, em thực đồ án “Ứng dụng lập trình điều khiển thiết bị qua wifi sử dụng chip ARM Cortex M3 STM32F103C8T6” Em xin chân thành cảm ơn Vũ Anh Đào tồn thể thầy cô khoa Kỹ thuật điện tử I tạo điều kiện giúp đỡ em trình thực đồ án tốt nghiệp SVTH: Ngơ Minh Đức-D12XLTH Chương I: Giới thiệu đề tài CHƯƠNG I GIỚI THIỆU ĐỀ TÀI 1.1 Cơ sở lựa chọn đề tài Ngày nay, công nghệ kết nối cần nhắc đến hiển nhiên Wifi – công nghệ kết nối không dây phổ biến Cũng tính phổ biến dạng kết nối mà tên Wifi thường bị lạm dụng để kết nối khơng dây nói chung Lí mà kết nối Wifi ưa chuộng đơn giản khả hoạt động hiệu phạm vi vài chục đến vài trăm mét mạng WLAN Và thời đại cơng nghiệp hóa đại hóa nay, việc phát minh chế tạo thiết bị thơng minh có khả điều khiển từ xa quan tâm hữu ích cho sống hàng ngày Vì mục tiêu cơng nghệ đại hóa ngày phát triển, tơi định làm đồ án điều khiển thiết bị qua WIFI Khi dự án hoàn thành điều khiển thiết bị điện nhà thơng qua sóng WIFI, cách tương tác qua nút nhấn để hiển thị trạng thái hoạt động thiết bị giao diện Web Như vậy, dù nơi có sóng wifi sử dụng thiết bị kết nối với module điều khiển Khi dự án thành cơng áp dụng rộng rãi tiện lợi cho sống thường nhật, giúp cho đất nước ngày phát triển 1.2 Giới thiệu đề tài Nội dung đồ án bao gồm chương là: Chương I: Giới thiệu đề tài Chương II: Tìm hiểu linh kiện, công nghệ, thiết bị Chương III: Thiết kế sản phẩm thực 1.3 Giới hạn đề tài Vì em sử dụng thu phát cảm biến có khoảng cách khơng xa nên sử dụng phạm vi 20 30 mét Nếu có kiện em cải tiến để có độ bao phủ sóng wifi tới mức xa 1.4 Đối tượng nghiên cứu • • Họ vi điều khiển ARM COTEX M3 Bộ thu wifi ESP8266 V7 SVTH: Ngô Minh Đức-D12XLTH Chương II: Tìm hiểu linh kiện, cơng nghệ , thiết bị CHƯƠNG II TÌM HIỂU CÁC LINH KIỆN, CƠNG NGHỆ, THIẾT BỊ 2.1 Cơng nghệ WIFI 2.1.1 Giới thiệu WIFI Wifi mà mạng kết nối Internet không dây, từ viết tắt Wireless Fidelity, sử dụng sóng vơ tuyến để truyền tín hiệu Loại sóng vơ tuyến tương tự sóng điện thoại, truyền hình radio Và hầu hết thiết bị điện tử ngày máy tính, laptop, điện thoại, máy tính bảng kết nối Wifi Hình 2.1 Wifi sử dụng thiết bị thơng minh Kết nối Wifi dựa loại chuẩn kết nối IEEE 802.11, chủ yếu Wifi hoạt động băng tần 54 Mbps có tín hiệu mạnh khoảng cách 100 feet (gần 31 mét, bạn thử tưởng tượng tầng nhà lấy trung bình mét theo lý thuyết sóng wifi phát tầng bắt bạn tầng - theo lý thuyết) Cịn thực tế ngơi nhà thường có nhiều vật cản sóng, nên bạn cần đứng tầng tín hiệu yếu Lúc đầu Wifi phát triển cách để thay cáp Ethernet Cho đến thời điểm tại, Wifi trở thành công nghệ phổ biến cung cấp kết nối thiết bị Không giống máy thu FM xe ô tô, Wifi giao tiếp qua lại chủ yếu radio sử dụng điện thấp phát sóng khoảng cách ngắn nhiều.Hai radio cho phép người dùng web tải liệu từ Internet upload thơng tin - chí địa submit thơng qua đếm trình duyệt giao tiếp chiều.Wifi phức tạp so với vô tuyến mặt đất Wifi sử dụng giao thức kết nối SVTH: Ngơ Minh Đức-D12XLTH Chương II: Tìm hiểu linh kiện, công nghệ , thiết bị Internet (Internet Protocol) để giao tiếp Ngôn ngữ Internet tạo cấu trúc Wifi 2.1.2 Nguyên tắc hoạt động Wifi Để có sóng Wifi cần phải có phát Wifi - thiết bị modem, router Đầu vào, tín hiệu Internet nguồn (được cung cấp đơn vị ISP FPT, Viettel, VNPT, CMC nay) Thiết bị modem, router lấy tín hiệu Internet qua kết nối hữu tuyến chuyển thành tín hiệu vơ tuyến, gửi đến thiết bị sử dụng điện thoại smartphone, máy tính bảng, laptop Đây q trình nhận tín hiệu khơng dây (hay cịn gọi adapter) - card wifi laptop, điện thoại chuyển hóa thành tín hiệu Internet Và q trình hồn tồn thực ngược lại, nghĩa router, modem nhận tín hiệu vơ tuyến từ adapter giải mã chúng, gửi qua Internet Hình 2.2 Các kết nối WIFI 2.1.3.Ưu nhược điểm Wifi Hiện nay, có nhiều loại sóng kết nối internet sóng 3g, 4g,… Nhưng sóng wifi có nhiều ưu điểm trội Mạng wifi khơng dây khơng khác hệ thống mạng thông thường Mạng cho phép người dùng truy xuất tài nguyên mạng địa điểm khu vực triển khai (home hay office) Với lượng gia tăng người sử dụng laptop điều tuyệt vời sử dụng mạng khơng dây đồng nghĩa với việc ta nói không với dây cáp cổ điển Ưu điểm di động: Cùng với phát triển mạng không dây cơng cộng, người sử dụng truy cập Internet nơi Ví dụ quán Café, người dùng truy cập Internet(mạng khơng dây) miễn phí Hiệu quả: Người sử dụng ln trì kết nối mạng họ cần phải từ nơi tới nơi khác SVTH: Ngô Minh Đức-D12XLTH Chương II: Tìm hiểu linh kiện, cơng nghệ , thiết bị Khả mở rộng: Mạng wifi không dây đáp ứng tức gia tăng số lượng người dùng Bạn nhiều người khác sử dụng lúc mà không cần phải kết nối đường cáp cách cổ điển trước Với hệ thống cổ điển trước bạn muốn tăng thêm lượng người sử dụng mạng hệ thống đồng nghĩa với việc tăng thêm chia cáp lằng nhằng thời gian tiền bạc Hình 2.3 Hình ảnh ưu điểm WIFI Bên cạnh ưu điểm trội nêu mạng khơng dây cịn có điểm hạn chế sau: - Độ bảo mật: Môi trường kết nối khơng dây khơng khí nên khả bị công người dùng cao Tuy vậy, thiết bị phát wifi nhà sản xuất trang bị biện pháp bảo mật hữu hiệu, đảm bảo an toàn thông tin cá nhân cho người sử dụng - Phạm vi hệ thống: Với mạng chuẩn 802.11g, thiết bị chuẩn hoạt động tốt phạm vi vài chục mét Hệ thống phù hợp hộ, với tòa nhà lớn hệ thống lại khơng đáp ứng nhu cầu Giải vấn đề cần phải mua thêm Repeater hay access point, đẫn đến chi phí gia tăng lên nhiều - Độ tin cậy: Vì sử dụng sóng vơ tuyến để truyền thơng nên việc bị nhiễu, tín hiệu bị giảm tác động thiết bị khác(lị vi sóng,…) khơng thể tránh khỏi Nó làm giảm đáng kể nhiều hiệu hoạt động mạng SVTH: Ngơ Minh Đức-D12XLTH Chương II: Tìm hiểu linh kiện, công nghệ , thiết bị - Tốc độ: Việc sử dụng hệ thống không dây đồng nghĩa với tốc độ mạng không dây(1-125 Mbps) chậm nhiều so với mạng cổ điển sử dụng cáp (100 mbps đến hang Gbps) 2.1.4.Các chuẩn kết nối Wifi Hình 2.4 Các chuẩn kết nối WIFI Kết nối 802.11: Wifi hệ thứ Năm 1997, IEEE (Institute of Electrical and Electronics Engineers) giới thiệu chuẩn cho WLAN Chuẩn gọi 802.11 sau tên nhóm thiết lập nhằm giám sát phát triển Tuy nhiên, 802.11chỉ hỗ trợ cho băng tần mạng cực đại lên đến 2Mbps, sử dụng băng tần 2,4Ghz sóng radio hồng ngoại – chậm hầu hết ứng dụng Với lý đó, sản phẩm khơng dây thiết kế theo chuẩn 802.11 ban đầu dần không sản xuất Kết nối 802.11b: Wi-Fi hệ thứ hai IEEE mở rộng chuẩn 802.11 gốc vào tháng Bảy năm 1999, chuẩn 802.11b Chuẩn hỗ trợ băng thông lên đến 11Mbps, tương quan với Ethernet truyền thống 802.11b sử dụng tần số vô tuyến (2.4 GHz) giống chuẩn ban đầu 802.11 Các hãng thích sử dụng tần số để chi phí sản xuất họ giảm Các thiết bị 802.11b bị xuyên nhiễu từ thiết bị điện thoại khơng dây (kéo dài), lị vi sóng thiết bị khác sử dụng dải tần 2.4 GHz Mặc dù vậy, cách cài đặt thiết bị 802.11b cách xa thiết bị giảm tượng xuyên nhiễu Ưu điểm 802.11b – giá thành thấp nhất; phạm vi tín hiệu tốt không dễ bị cản trở Nhược điểm 802.11b – tốc độ tối đa thấp nhất; ứng dụng gia đình xun nhiễu Kết nối 802.11a: Cũng hệ thứ hai.Trong 802.11b phát triển, IEEE tạo mở rộng thứ cấp cho chuẩn 802.11 có tên gọi 802.11a Vì 802.11b sử dụng rộng rãi nhanh so với 802.11a, nên số người cho 802.11a tạo sau 802.11b Tuy nhiên thực tế, 802.11a 802.11b tạo SVTH: Ngô Minh Đức-D12XLTH 10 Phụ lục { if(buf1[i]!='\\') { k++; i++; } } printf("buf1= %d\r\n",i);///////////////////////////////////////// i=0; while(buf2[i]!='\0') { if(buf2[i]!='\\') { k++; i++; } } printf("buf2= %d\r\n",i);///////////////////////////////////// i=0; while(buf3[i]!='\0') { if(buf3[i]!='\\') { k++; i++; } } printf("buf3= %d\r\n",i);/////////////////////////////////// i=0; while(buf_TB1[i]!='\0') { if(buf_TB1[i]!='\\') { k++; i++; } } printf("buf_TB1=%d\r\n",i);//////////////////////////// SVTH: Ngô Minh Đức-D12XLTH 46 Phụ lục i=0; while(buf_TB2[i]!='\0') { if(buf_TB2[i]!='\\') { k++; i++; } } printf("buf_TB2= %d\r\n",i);//////////////////////////////// i=0; while(Startur_on[i]!='\0') { if(Startur_on[i]!='\\') { k++; i++; } } printf("Startur_on= %d\r\n",i);///////////////////////////// i=0; while(Startur_off[i]!='\0') { if(Startur_off[i]!='\\') { k++; i++; } } printf("Startur_off= %d\r\n",i);/////////////////////////// i=0; while(buf_DC[i]!='\0') { if(buf_DC[i]!='\\') { k++; i++; } SVTH: Ngô Minh Đức-D12XLTH 47 Phụ lục } printf("buf_DC=%d\r\n",i);//////////////////// i=0; while(Startur_off[i]!='\0') { if(Startur_off[i]!='\\') { k++; i++; } } printf("Startur_off=%d\r\n",i);/////////// i=0; while(buf_up_dow[i]!='\0') { if(buf_up_dow[i]!='\\') { k++; i++; } } printf("buf_up_dow=%d\r\n",i); printf("kkkkkkkkkkkkkkkkkkkkk=%d\r\n",k); number_word=k; while(1) { //kiem tra truy cap web if(pwm_new==1) { pwm_new=0; duty_new=100-duty; pwm = (4000*duty_new)/100; target=0; printf("pwm=%d\r\n",pwm); PWM_CH1(TIM3,pwm); } if(contro==1) { printf("tb_connect = %c\r\n",tb_connect); contro=0; SVTH: Ngô Minh Đức-D12XLTH 48 Phụ lục CheckState(); } } } void IO_config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_7); = (GPIO_Pin_12|GPIO_Pin_13| GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); } void CheckState(void) { //GPIO_ResetBits(GPIOA,GPIO_Pin_13); if((startur_PIN1==1)&&(startur_PIN2==1)) { if(startur_PIN_Stop==0) { if(startur_PIN_Left_Righ==1) { Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_on,buf_DC,Startur_Righ,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_on,buf_DC,Startur_Left,buf_up_dow,duty); } SVTH: Ngô Minh Đức-D12XLTH 49 Phụ lục else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_on,buf_DC,Startur_Stop,buf_up_dow,duty); } else if((startur_PIN1==1)&&(startur_PIN2==0)) { if(startur_PIN_Stop==0) { if(startur_PIN_Left_Righ==1) { Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_off,buf_DC,Startur_Righ,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_off,buf_DC,Startur_Left,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_on,buf_TB2,Start ur_off,buf_DC,Startur_Stop,buf_up_dow,duty); } else if((startur_PIN1==0)&&(startur_PIN2==0)) { if(startur_PIN_Stop==0) { if(startur_PIN_Left_Righ==1) { Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_off,buf_DC,Startur_Righ,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_off,buf_DC,Startur_Left,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_off,buf_DC,Startur_Stop,buf_up_dow,duty); } else if((startur_PIN1==0)&&(startur_PIN2==1)) SVTH: Ngô Minh Đức-D12XLTH 50 Phụ lục { if(startur_PIN_Stop==0) { if(startur_PIN_Left_Righ==1) { Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_on,buf_DC,Startur_Righ,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_on,buf_DC,Startur_Left,buf_up_dow,duty); } else Show_Web(number_word,buf1,buf2,buf3,buf_TB1,Startur_off,buf_TB2,Star tur_on,buf_DC,Startur_Stop,buf_up_dow,duty); } } void GPIO_Configuration_Output(GPIO_TypeDef* GPIOx, int GPIO_Pin) { GPIO_InitTypeDef GPIO_InitStructure; if(GPIOx == GPIOA) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); if(GPIOx == GPIOE) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); if(GPIOx == GPIOC) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); if(GPIOx == GPIOD) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); if(GPIOx == GPIOG) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOx, &GPIO_InitStructure); } void GPIO_Configuration_Input(GPIO_TypeDef* GPIOx, int GPIO_Pin) SVTH: Ngô Minh Đức-D12XLTH 51 Phụ lục { GPIO_InitTypeDef GPIO_InitStructure; if(GPIOx == GPIOA) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); if(GPIOx == GPIOE) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); if(GPIOx == GPIOC) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); if(GPIOx == GPIOD) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); if(GPIOx == GPIOG) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOx, &GPIO_InitStructure); } void UART1_2_IRQn(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Enable the USART1 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable the USART2 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void _delay_ms(uint16_t ms) { long index; SVTH: Ngô Minh Đức-D12XLTH 52 Phụ lục index = ms*1010; while(index) { index ; } } void Delay_us( IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay != 0){} } void Delay_ms( IO uint32_t nTime) { TimingDelay = nTime*1000; while(TimingDelay != 0){} } void TimingDelay_Decrement(void) { if (TimingDelay != 0x00) { TimingDelay ; } } void SysTick_Handler(void) { TimingDelay_Decrement(); } void Send_Data(unsigned char Port_Usart) { uint32_t jn; //target = Port_Usart - 1; if(Port_Usart==1) { for(jn=0; jn TIMx Frequency = TIMx counter clock/(ARR + 1) * TIMx Frequency = 488.1620698Hz * TIMx Channel2 duty cycle = (TIMx_CCR2/ TIMx_ARR)* 100 = 50% * TIMx Frequency = TIMx counter clock/(TIM_Period + 1) * Prescaler la gia tri de chia tu tan so he thong gia tri can lay dua vao co timer * Period la gia tri cua 100% xung PWM tao duoc va ti le phan tram xung (%) = (gia tri tu ghi CCR)/Period - */ void PWM_timer_init(TIM_TypeDef* TIMx, int Period, int Prescaler) { TIM_TimeBaseInitTypeDef TIM_OCInitTypeDef TIM_TimeBaseStructure; TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3| RCC_APB1Periph_TIM4, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructure.TIM_Period = Period; TIM_TimeBaseStructure.TIM_Prescaler = Prescaler-1; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIMx, &TIM_TimeBaseStructure); /* PWM1 Mode configuration: Channel2 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 0; ghi CCR // Gia tri nap vao TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; SVTH: Ngô Minh Đức-D12XLTH 57 Phụ lục TIM_OC1Init(TIMx, &TIM_OCInitStructure); TIM_OC2Init(TIMx, &TIM_OCInitStructure); TIM_OC3Init(TIMx, &TIM_OCInitStructure); TIM_OC4Init(TIMx, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIMx, TIM_OCPreload_Enable); TIM_OC2PreloadConfig(TIMx, TIM_OCPreload_Enable); TIM_OC3PreloadConfig(TIMx, TIM_OCPreload_Enable); TIM_OC4PreloadConfig(TIMx, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIMx, ENABLE); /* TIMx enable counter */ TIM_Cmd(TIMx, ENABLE); } void PWM_CH1(TIM_TypeDef* TIMx, uint16_t duty_cycle) { TIMx->CCR1 = duty_cycle; } void PWM_CH2(TIM_TypeDef* TIMx, uint16_t duty_cycle) { TIMx->CCR2 = duty_cycle; } void PWM_CH3(TIM_TypeDef* TIMx, uint16_t duty_cycle) { TIMx->CCR3 = duty_cycle; } void PWM_CH4(TIM_TypeDef* TIMx, uint16_t duty_cycle) { TIMx->CCR4 = duty_cycle; } void _Delay_ms_mem( IO uint32_t ms) { long i; i = ms*10100; while(i) SVTH: Ngô Minh Đức-D12XLTH 58 Phụ lục { i ; } } void _Delay_us_mem( IO uint32_t us) { SVTH: Ngô Minh Đức-D12XLTH 59 Tài liệu tham khảo TÀI LIỆU THAM KHẢO 1/ ARM7TDMI (Rev 3)Technical Reference Manual Copyright © 1994-2001 All rights reserved ARM DDI 0029G 2/ The Defi nitive Guide to the ARM Cortex-M3 http://www.arm.com/ 3/ Thiết kế điện tử tiên tiến – Nguyễn Trung Hiếu 4/ www.esp8266.vn/introduction/esp-module 5/ https://vi.wikipedia.org/wiki/Wi-Fi 6/ http://hocarm.org SVTH: Ngô Minh Đức-D12XLTH 60 ... trội ARM xu lựa chọn dòng vi điều khiển Việt Nam nên đồ án tốt nghiệp này, giúp đỡ Cô Vũ Anh Đào, em thực đồ án ? ?Ứng dụng lập trình điều khiển thiết bị qua wifi sử dụng chip ARM Cortex M3 STM32F103C8T6? ??... thiết bị 2.2.2 Điều khiển thiết bị qua tin nhắn điện thoại Thiết lập hệ thống điều khiển thiết bị nhà từ xa thơng qua tin nhắn SMS gồm có thiết bị đơn giản bóng đèn, quạt máy, lị sưởi đến thiết bị. .. hồn thành điều khiển thiết bị điện nhà thơng qua sóng WIFI, cách tương tác qua nút nhấn để hiển thị trạng thái hoạt động thiết bị giao diện Web Như vậy, dù nơi có sóng wifi sử dụng thiết bị kết