日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【毕业设计】基于STM32的公交站牌系统 - 物联网 嵌入式 单片机

發布時間:2023/12/10 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【毕业设计】基于STM32的公交站牌系统 - 物联网 嵌入式 单片机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 簡介
  • 2 主要器件
    • 2.1 ILI9320
    • 2.2 串口GPRS模塊
    • 2.3 相關傳感器
  • 3 實現效果
  • 4 設計原理
  • 5 部分實現代碼
  • 6 最后


1 簡介

Hi,大家好,這里是丹成學長,今天向大家介紹一個單片機項目

STM32公交站牌系統

大家可用于 課程設計 或 畢業設計


單片機-嵌入式畢設選題大全及項目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


該項目主要是一個模擬公交車信息實時發布系統,采集公交車信息,再發布在站臺和移動客戶端,系統結構如下圖。

2 主要器件

2.1 ILI9320

ILI9320是液晶屏的驅動芯片,屏幕分辨率320 × 240像素,單片機通過FSMC總線控制器操作屏幕,需要16根數據線和6根控制線,外加電源接地等共24根線才能驅動。FSMC(Flexible Static Memory Controller)是STM32的一個并行接口,通過此接口,單片機可以控制NOR Flash、NAND Flash、SRAM 和 PSRAM。除了控制儲存器,FSMC還可以控制支持Intel8080 和Motorola 6800時序的LCD屏幕。

2.2 串口GPRS模塊

選擇通信模塊時考慮到時間有限,選擇開發難度相對較低(不需要開發驅動)的串口GPRS模塊,模塊型號:USR-GSM232-7S3,主要特性是支持GPRS網絡通信,支持數據請求地址自定義或請求至官方后臺,官方后臺提高訪問數據的API。在上位機軟件配置好請求地址后,向串口發送數據,模塊會自動打包數據并向配置的服務器地址發起請求,整個模塊類似一個HTTP客戶端。當然,這個模塊的缺點也很明顯,2G網絡速度太慢,請求一幀數據到收到服務器回復平均需要十幾秒。

2.3 相關傳感器

噪音傳感器和pm2.5傳感器都是通過串口讀取數據,只需按要求初始化串口配置并解析收到的數據即可。DHT11溫濕度傳感器數據讀取需按特定的時序,模塊和單片機間使用單總線傳輸數據。在購買模塊時商家已提供驅動代碼,相關代碼見Github倉庫,驅動時序如下圖所示。

3 實現效果


4 設計原理

站牌主要功能是接收顯示公交信息,但考慮也可以上傳些數據,索性增加幾個傳感器,采集些數據,大概長下面這個樣子。模塊和單片機通訊除了LCD用的FSMC其他都是串口UART。整個站牌部分主要麻煩在LCD屏的驅動和無線通信部分的代碼。

5 部分實現代碼

ILI9320 驅動代碼

//! GPIO結構體聲明 GPIO_InitTypeDef GPIO_InitStructure; //! FSMC NORSRAM結構體聲明 FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; //! FSMC 讀寫時序結構體,當擴展模式時,僅有讀時序有效 FSMC_NORSRAMTimingInitTypeDef readWriteTiming; //! FSMC 寫時序結構體,擴展模式使用 FSMC_NORSRAMTimingInitTypeDef writeTiming; //! 使能FSMC時鐘 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE); //! 使能PART B,D,E,G及AFIO復用功能時鐘, RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOG,ENABLE); //! PB0---------背光功能 //! PB1---------RESET功能 高電平工作,低電平硬件復位 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //! 推挽輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //! GPIO最大輸出頻率50MHz GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);//! PORTD復用推挽輸出 PD0,1,8,9,10,14,15為數據管腳 //! PD4--------RD; PD5-----------WR GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); //! PORTE復用推挽輸出 PE7,8,9,10,11,12,13,14,15為數據管腳 詳細定義見"GPIO管腳及功能定義.txt" 文件 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //! 復用推挽輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); //! PORTG復用推挽輸出 PG12----CS; PG0-----RS; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_12; //! 復用推挽輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOG, &GPIO_InitStructure); //拉高RESET管腳,液晶屏才工作 GPIO_SetBits(GPIOB,GPIO_Pin_1);

單片機-嵌入式畢設選題大全及項目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


6 最后

總結

以上是生活随笔為你收集整理的【毕业设计】基于STM32的公交站牌系统 - 物联网 嵌入式 单片机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。