最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于CH32V307的溫度顯示功能

2023-02-15 19:51 作者:你低頭我望月  | 我要投稿

第一部分 設(shè)計概述

1.1 設(shè)計目的

????在智能工業(yè)生產(chǎn)現(xiàn)場中,生產(chǎn)設(shè)備的控制依賴于傳感器讀數(shù)以及相關(guān)算法等。而傳感器起著至關(guān)重要的作用,傳感器的驅(qū)動和數(shù)據(jù)傳輸依賴于微控制器,
系統(tǒng)基于沁恒 CH32V307 微控制器進(jìn)行數(shù)據(jù)收集、服務(wù)器進(jìn)行數(shù)據(jù)處理和,中
間基于服務(wù)器通過串口與微控制器進(jìn)行數(shù)據(jù)傳輸處理并通過以太網(wǎng)與服務(wù)器交
互。服務(wù)器端,可實(shí)現(xiàn)數(shù)據(jù)庫、數(shù)據(jù)可視化顯示和設(shè)備交互;微控制器端通過
操作系統(tǒng)執(zhí)行傳感器驅(qū)動進(jìn)程、以太網(wǎng)傳輸進(jìn)程、工業(yè)現(xiàn)場數(shù)據(jù)顯示等進(jìn)程;
工業(yè)控制器端。

1.2硬件介紹

首先介紹一下我們使用的開發(fā)板:我們使用的是CH32V307開發(fā)板。該板使用的是南京沁恒微電子推出的一款基于RISC-V MCU CH32V307內(nèi)核的開發(fā)板。CH32V307系列是基于32位RISC-V設(shè)計的互聯(lián)型微控制器,配備了硬件堆棧區(qū)、快速中斷入口,在標(biāo)準(zhǔn)RISC-V基礎(chǔ)上大大提高了中斷響應(yīng)速度。加入單精度浮點(diǎn)指令集,擴(kuò)充堆棧區(qū),具有更高的運(yùn)算性能。擴(kuò)展串口UART數(shù)量到8組,電機(jī)定時器到4組。提供USB2.0高速接口(480Mbps)并內(nèi)置了PHY收發(fā)器,以太網(wǎng)MAC升級到千兆并集成了10M-PHY模塊。

1.3 主要技術(shù)特點(diǎn)

????微控制器使用了顯示屏、溫濕度傳感器以及以太網(wǎng)模塊??刂破黩?qū)動溫濕度模塊測量溫濕度;顯示屏顯示傳感器名稱溫濕度名稱以及數(shù)值;以太網(wǎng)采用
芯片自帶 10M 處理模塊,外接以太網(wǎng)接口,采用官方驅(qū)動庫進(jìn)行數(shù)據(jù)傳輸。數(shù)
據(jù)傳輸至服務(wù)器 python socket 進(jìn)行以太網(wǎng)數(shù)據(jù)接收處理。

1.4 關(guān)鍵性能指標(biāo)

(1) MCU:
????CH32V307VCT6,主頻 144MHz,F(xiàn)LASH 和 RAM 四種配置
????288KB FLASH ,32KB RAM
????256KB FLASH ,64KB RAM
????224KB FLASH ,96KB RAM
????192KB FLASH ,128KB RAM
????CH32V307V-R0 是 南京沁恒微電子(WCH) 推出的一款基于 RISC-V 內(nèi)核的開發(fā)板,最高主頻為 120Mhz,該開發(fā)板芯片為 CH32V307-R0。

? ? ? ? ? ? ? ? ?

主控片上資源

? ? ? ? ? ? ? ? ? ? ? ? ? ?

(2) AHT10:
????溫度范圍為: 測量范圍為 -40 ℃ ~+ 85 ℃ 精度±0.5℃;
????濕度范圍為:測量范圍為 0% - 100% 精度為±3%RH;
(3) 以太網(wǎng):ETH 支持 10M

1.5 主要創(chuàng)新點(diǎn)

(1) MCU 自帶以太網(wǎng)處理模塊
????(2) 采用 TCP 連接,數(shù)據(jù)傳輸準(zhǔn)確

第二部分 系統(tǒng)組成及功能說明

2.1 整體介紹

系統(tǒng)結(jié)構(gòu)


2.2 各模塊介紹

(一)開發(fā)板

a) MCU
??MCU 作為核心處理器,驅(qū)動周圍模塊并與外界進(jìn)行通信。
b) 溫濕度模塊
??溫濕度傳感器測量物理環(huán)境的溫濕度,由 MCU 驅(qū)動,通過 IIC 協(xié)議與
MCU 進(jìn)行數(shù)據(jù)傳輸。

溫濕度模塊


c) 顯示屏
????顯示屏作為人機(jī)交互界面有 MCU 驅(qū)動顯示。顯示內(nèi)容包括溫濕度傳感器信
號;溫濕度以及數(shù)值等內(nèi)容
d) 以太網(wǎng)模塊
????以太網(wǎng)模塊為 MCU 外界以太網(wǎng)接口,無相關(guān)轉(zhuǎn)接芯片。

(二)服務(wù)器

????以 PC 作為服務(wù)器接口,使用 Python Socket 建立服務(wù)器。通過綁定 IP 以及
端口進(jìn)行輸出傳輸以及相關(guān)數(shù)據(jù)的處理等內(nèi)容。

import socket,osserver = socket.socket()server.bind(("192.168.1.100",1000))server.listen(5)?#數(shù)據(jù)暫存器TEMP = [b'H',b'2']?while True:??? conn,addr = server.accept()??? print("Connected to:",addr)??? while True:??????? #接收兩個字節(jié)數(shù)據(jù)??????? data = conn.recv(2)??????? #判斷接收的字節(jié)是否為空,為空則退出??????? if not data:??????????? print("Connected break")??????????? break??????? #將兩個字節(jié)切片??????? info = [data[i:i+1] for i in range(0, len(data), 1)]??????? #print(len(info))??????? if len(info) == 2 :??????????? TEMP[0] = info[0]??????????? TEMP[1] = info[1]??????? #字節(jié)判斷轉(zhuǎn)換輸出??????? if (TEMP[0] == b'H') :??????????? print('H',ord(TEMP[1]))??????? if (TEMP[0] == b'T') :??????????? print('T',ord(TEMP[1]))?server.close()

第三部分 完成情況及性能參數(shù)

(一)顯示屏模塊

????

顯示屏溫濕度顯示



(二)服務(wù)器模塊

Python Socket TCP連接


第四部分 主控關(guān)鍵代碼

點(diǎn)擊查看代碼

#include "debug.h"#include "WCHNET.h"#include "string.h"#include "lcd.h"#include "AHT_10.h"?int32_t temperature, humidity;char temp[2]; __attribute__((__aligned__(4))) ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB];??????????????????????? /* MAC接收描述符 ,4字節(jié)對齊*/ __attribute__((__aligned__(4))) ETH_DMADESCTypeDef DMATxDscrTab[ETH_TXBUFNB];??????????????????????? /* MAC發(fā)送描述符,4字節(jié)對齊 */? __attribute__((__aligned__(4))) u8? MACRxBuf[ETH_RXBUFNB*ETH_MAX_PACKET_SIZE];?????????????????????? /* MAC接收緩沖區(qū),4字節(jié)對齊 */ __attribute__((__aligned__(4))) u8? MACTxBuf[ETH_TXBUFNB*ETH_MAX_PACKET_SIZE];?????????????????????? /* MAC發(fā)送緩沖區(qū),4字節(jié)對齊 */__attribute__((__aligned__(4))) SOCK_INF SocketInf[WCHNET_MAX_SOCKET_NUM];?????????????????????????? /* Socket信息表,4字節(jié)對齊 */const u16 MemNum[8] = {WCHNET_NUM_IPRAW,???????????????????????? WCHNET_NUM_UDP,???????????????????????? WCHNET_NUM_TCP,???????????????????????? WCHNET_NUM_TCP_LISTEN,???????????????????????? WCHNET_NUM_TCP_SEG,???????????????????????? WCHNET_NUM_IP_REASSDATA,???????? ????????????????WCHNET_NUM_PBUF,???????????????????????? WCHNET_NUM_POOL_BUF???????????????????????? };const u16 MemSize[8] = {WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_IPRAW_PCB),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_UDP_PCB),????????? ????????????????WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_TCP_PCB),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_TCP_PCB_LISTEN),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_TCP_SEG),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_IP_REASSDATA),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_PBUF) + WCHNET_MEM_ALIGN_SIZE(0),????????????????????????? WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_PBUF) + WCHNET_MEM_ALIGN_SIZE(WCHNET_SIZE_POOL_BUF)???????????????????????? }; __attribute__((__aligned__(4)))u8 Memp_Memory[WCHNET_MEMP_SIZE]; __attribute__((__aligned__(4)))u8 Mem_Heap_Memory[WCHNET_RAM_HEAP_SIZE]; __attribute__((__aligned__(4)))u8 Mem_ArpTable[WCHNET_RAM_ARP_TABLE_SIZE];??#define RECE_BUF_LEN????????????????????????? WCHNET_TCP_MSS*2?????????????????????????????????? /*socket接收緩沖區(qū)的長度,最小為TCP MSS*/?u8 MACAddr[6];?????????????????????????????????????????????????????????????????????????????????? /*Mac地址*/u8 IPAddr[4] = {192,168,1,10};?????????????????????????????????????????????????????????????????? /*IP地址*/u8 GWIPAddr[4] = {192,168,1,1};????????????????????????????????????????????????????????????????? /*網(wǎng)關(guān)*/u8 IPMask[4] = {255,255,255,0};??????????????????????????????????????????? ??????????????????????/*子網(wǎng)掩碼*/u8 DESIP[4] = {192,168,1,100};?????????????????????????????????????????????????????????????????? /*目的IP地址*/u8 connectStatus=0;u8 SocketId;???????????????????????????????????????????????????????????????????????????????????? /*socket id號*/u8 SocketRecvBuf[WCHNET_MAX_SOCKET_NUM][RECE_BUF_LEN];?????????????????????????????????????????? /*socket緩沖區(qū)*/u8 MyBuf[RECE_BUF_LEN];u16 desport=1000;??????????????????????????????????????????????????????????????????????????????? /*目的端口號*/u16 srcport=1000;??????????????????????????????????????????????????????????????????????????????? /*源端口號*//******************************************************************** * @fn????? Ethernet_LED_Configuration * @brief?? set eth data and link led pin * @return? none */void Ethernet_LED_Configuration(void){??? GPIO_InitTypeDef? GPIO;???? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);??? GPIO.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;??? GPIO.GPIO_Mode = GPIO_Mode_Out_PP;??? GPIO.GPIO_Speed = GPIO_Speed_50MHz;??? GPIO_Init(GPIOB,&GPIO);??? Ethernet_LED_LINKSET(1);??? Ethernet_LED_DATASET(1);}??/********************************************************************* * @fn????? Ethernet_LED_LINKSET * * @brief?? set eth link led,setbit 0 or 1,the link led turn on or turn off * * @return? none */void Ethernet_LED_LINKSET(u8 setbit){???? if(setbit){???????? GPIO_SetBits(GPIOB, GPIO_Pin_8);???? }???? else {???????? GPIO_ResetBits(GPIOB, GPIO_Pin_8);??? }}/********************************************************************* * @fn????? Ethernet_LED_DATASET * * @brief?? set eth data led,setbit 0 or 1,the data led turn on or turn off * * @return? none */void Ethernet_LED_DATASET(u8 setbit){???? if(setbit){???????? GPIO_SetBits(GPIOB, GPIO_Pin_9);???? }???? else {???????? GPIO_ResetBits(GPIOB, GPIO_Pin_9);??? }}

1.?? 心得和體會

在本次水感控制系統(tǒng)的制作中,遇到了許多問題,有理論上的,也有操作失誤。通過這個項目,使我加深了對單片機(jī)知識的理解,明白了理論知識的學(xué)習(xí)要配合動手實(shí)踐才能取得更好的效果!

?


基于CH32V307的溫度顯示功能的評論 (共 條)

分享到微博請遵守國家法律
南溪县| 察隅县| 栖霞市| 天长市| 鞍山市| 土默特右旗| 江口县| 团风县| 西城区| 集贤县| 赤壁市| 金秀| 海安县| 黄石市| 太仓市| 筠连县| 桐柏县| 宁武县| 普兰店市| 浦江县| 庆云县| 柳河县| 巴彦县| 昔阳县| 临城县| 农安县| 杭锦后旗| 句容市| 舒兰市| 姜堰市| 松溪县| 静安区| 新巴尔虎左旗| 莱芜市| 凉山| 岳池县| 稻城县| 莲花县| 紫云| 大竹县| 沧州市|