《鴻蒙智能互聯設備開發(微課版)》 課件 7.2.6 項目總結報告_第1頁
《鴻蒙智能互聯設備開發(微課版)》 課件 7.2.6 項目總結報告_第2頁
《鴻蒙智能互聯設備開發(微課版)》 課件 7.2.6 項目總結報告_第3頁
《鴻蒙智能互聯設備開發(微課版)》 課件 7.2.6 項目總結報告_第4頁
《鴻蒙智能互聯設備開發(微課版)》 課件 7.2.6 項目總結報告_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

7.2.6項目總結報告通過本節學習,您可以:了解智能安防項目的完整代碼項目總結報告智能安防完整代碼如下:app_AF.c:主體程序代碼。包含智能安防任務創建,各外設程序初始化,主要功能代碼實現。

#include<stdio.h>

#include<string.h>

#include"cmsis_os2.h"

#include"ohos_init.h"

#include"hi_io.h"

#include"hi_pwm.h"

#include"hi_gpio.h"

#include"AF.h"

#include"mqtt_connect.h"

#include"bsp_string.h"

#include"bsp_nfc.h"

#include"NT3H.h"

#defineTASK_STACK_SIZE(1024*8)//任務內存大小

#defineTASK_PRIO25//任務優先級

#defineTASK_DELAY_3S300//延時3S的參數

#defineTASK_DELAY_1S100//延時1S的參數

#defineTASK_DELAY_100MS100000//延時100ms的參數

#defineFLAGS_MSK10x00000001U//事件標志位

項目總結報告

osEventFlagsId_tg_eventFlagsId;//事件

uint8_ttopic_buf[64]="MQTT_MCU";//發布的主題

/**

*@brief中斷響應函數

*/

static

voidBeepAlarm(char*arg)

{

(void)arg;

osEventFlagsSet(g_eventFlagsId,FLAGS_MSK1);

}

/**

*@briefAF任務函數

*/

static

voidAFTask(void){項目總結報告

intret;

inttime=0;

uint8_thuman_state='1';

uint8_tbuffer[16]={0};

uint8_tstr_buf[32]={0};

AFInit();//初始化AF模塊

ret=AFReadData(BeepAlarm);//讀人體熱釋電的數據

if(ret!=0){

printf("AFReadDatafailed!\r\n");

return;

}printf("AFReadDatasucceed!\r\n");

NFC_GPIOInit();//初始化NFC的通信引腳

usleep(TASK_DELAY_100MS);//延遲100ms

NT3HGetNxpSerialNumber(buffer);//獲取NFC芯片的序列號

Hex2StringArray(str_buf,6,buffer);//轉化為字符串

StringCat(topic_buf,str_buf);//組成一個新的發布主題

printf("Topic:%s\r\n",topic_buf);

ret=storeText(NDEFFirstPos,topic_buf);//把發布的主題寫入NFC芯片中

項目總結報告

if(ret!=1)

{

printf("NFCWriteDataFalied:%d",ret);

}

printf("Successfuldeployment!\r\n");

while(1)

{

osEventFlagsWait(g_eventFlagsId,FLAGS_MSK1,osFlagsWaitAny,osWaitForever);//等待事件響應

printf("\r\n!!!warning!!!\r\n");

time++;

printf("Numberofalerts:%d\r\n",time);

BeepStatusSet(ON);//開蜂鳴器

osDelay(TASK_DELAY_3S);//延時3S

BeepStatusSet(OFF);//關蜂鳴器

osDelay(TASK_DELAY_1S);//延時1S

}}項目總結報告

/**

@briefAF任務創建函數

**/

static

voidAFEntry(void)

{

g_eventFlagsId=osEventFlagsNew(NULL);//創建一個事件ID

if(g_eventFlagsId==NULL){

printf("FailedtocreateEventFlags!\n");

}

osThreadAttr_tattr;

="AFTask";//任務名稱

attr.attr_bits=0U;//任務屬性位

attr.cb_mem=NULL;//任務控制塊的內存初始化地址,默認為系統默認分配

attr.cb_size=0U;//任務控制塊的內存大小

attr.stack_mem=NULL;//任務的內存初始地址,默認為系統自動分配

attr.stack_size=TASK_STACK_SIZE;//任務的內存大小

attr.priority=TASK_PRIO;//任務的優先級

/**創建任務**/

if(osThreadNew((osThreadFunc_t)AFTask,NULL,&attr)==NULL){

printf("FailedtocreateAFTask!\n");

}

printf("SucceedtocreateAFTask!\n");

}

/**讓系統運行指定的函數**/

APP_FEATURE_INIT(AFEntry);項目總結報告inc/AF.h:硬件外設初始化頭文件。

#ifndef__AF_H__

#define__AF_H__

typedef

enum{

OFF=0,

ON

};

voidAFInit(void);

intAFReadData(char*func);

voidBeepStatusSet(intstatus);

#endif項目總結報告src/AF.c:硬件外設引腳初始化及對應功能實現。

#include<math.h>

#include<stdio.h>

#include<string.h>

#include<unistd.h>

#include"cmsis_os2.h"

#include"hi_io.h"

#include"hi_pwm.h"

#include"hi_gpio.h"

#defineAF_BEEP8//蜂鳴器的引腳

#defineAF_PIR7//熱釋電紅外傳感器的引腳

#definePWM_DUTY3999//PWM的占空比

#definePWM_FREQ4000//PWM的頻率項目總結報告

/*IO初始化*/

static

voidAFIoInit(void)

{

/**GPIO初始化**/

hi_gpio_init();//初始化GPIO

hi_io_set_func(AF_BEEP,HI_IO_FUNC_GPIO_8_PWM1_OUT);//設置GPIO_8引腳復用功能為PWM

hi_gpio_set_dir(AF_BEEP,HI_GPIO_DIR_OUT);//設置GPIO_8引腳為輸出模式

hi_pwm_init(HI_PWM_PORT_PWM1);//初始化PWM1端口

hi_io_set_func(AF_PIR,HI_IO_FUNC_GPIO_7_GPIO);//設置為GPIO模式

hi_gpio_set_dir(AF_PIR,HI_GPIO_DIR_IN);//設置GPIO_7為輸入模式

hi_io_set_pull(AF_PIR,HI_IO_PULL_UP);//上拉模式

}

/*初始化AF*/

voidAFInit(void)

{

AFIoInit();}項目總結報告

/*讀傳感器數據*/

intAFReadData(char*func)

{

uint32_tret;

ret=hi_gpio_register_isr_function(AF_PIR,HI_INT_TYPE_EDGE,HI_GPIO_EDGE_RISE_LEVEL_HIGH,func,NULL);//設置上升沿中斷

if(ret!=0)

{

return-1;

}

return0;}項目總結報告

/*設置蜂鳴器的狀態*/

voidB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論