




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市道路改造工程合同書
- 原料供應合同
- 連鎖餐廳與旅行社定點合作合同
- 水產養殖基地租賃合同范本
- 粘土盒美術課件
- 植物考試模擬題與參考答案
- 租賃車位合同簡易版
- 工商局標準股份轉讓合同范本
- 職業生涯教育
- 跨國電子商務交易合作框架協議
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 2024年度產學研合作與科研獎勵協議3篇
- 電力工程線路交叉跨越施工主要工序及特殊工序施工方法
- 【MOOC】軟件度量及應用-中南大學 中國大學慕課MOOC答案
- 24秋國家開放大學《兒童發展問題的咨詢與輔導》周測驗參考答案
- 2025屆江蘇省蘇州市重點中學高三第二次模擬考試英語試卷含解析
- JJF(京) 124-2024 智能電表電動自行車充電辨識模組校準規范
- DB65-T 4783-2024 冰川資源遙感調查技術規范
- 護士中級職稱競聘述職課件
- 2024年江蘇省徐州市中考一模物理試題(含答案)
- 6古對今 公開課一等獎創新教學設計
評論
0/150
提交評論