-
大小: 640KB文件類型: .7z金幣: 1下載: 0 次發(fā)布日期: 2021-05-28
- 語言: 其他
- 標簽: STM32??ZigBee??畢業(yè)設(shè)計??
資源簡介
STM32智能家居項目源代碼,基于ZigBee和STM32的智能家居控制系統(tǒng)(IP柜)的設(shè)計與實現(xiàn)。
代碼片段和文件信息
#include?“CS.h“
#include?“gpio.h“
#include?“usart1.h“
extern?uint8_t?beginflag;
?uint8_t?count[8][8]?=?{0};?
extern?u8?USART_RX_BUF[8];?
void?Data_Collect(int?timesuint32_t?chip)?//數(shù)據(jù)收集函數(shù)
{
?int?k;
?????int?m?=?0;
?static??int?i?=?0;
????
????//控制輸入使能端EN-1(ON5-ON7為000)
??? TIM3_US_DELAY(15);??????????????//定時器3延時15微秒
GPIOA->BRR?=?GPIO_Pin_7;???????//PA7置0
TIM3_US_DELAY(15);????????????
GPIOA->BRR?=?GPIO_Pin_6;???????
TIM3_US_DELAY(15);?????????????
GPIOA->BRR?=?GPIO_Pin_5;
????
????//控制輸入OA1-OA4控制電纜的位數(shù)
????GPIOE->BRR?=?GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12;//E15、14、13、12端置0?(OA1-OA4)
????for(k=times;?k ????{
??????????GPIOE->ODR&=0X0FFF;??????????????????//PE15-PE12清零
??GPIOE->ODR|=k<<12;???????????????????//i的值左移12位
????????
?????????TIM3_US_DELAY(10);
?????????if(GPIO_ReadInputDataBit(GPIOA?GPIO_Pin_3)?==?Bit_SET)?//采集PA3的高低電平,放入矩陣count中
?????????{
????????????count[i][m++]?=?0x01;
?????????}
?????????else
?????????{
????????????count[i][m++]?=?0x00;
?????????}
????}?
??????i++;????
??????TIM3_US_DELAY(5);
????
}
void?TIME2_Init(void)
{
TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
????NVIC_InitTypeDef?NVIC_InitStructure;
????RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2??ENABLE);
TIM_DeInit(TIM2);
????/*?Time?base?configuration?*/
????TIM_TimebaseStructure.TIM_Period?=?1999;???????//80us
????TIM_TimebaseStructure.TIM_Prescaler?=?71;?????//1us
????TIM_TimebaseStructure.TIM_ClockDivision?=?0;
????TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;
????TIM_TimebaseInit(TIM2?&TIM_TimebaseStructure);
TIM_ARRPreloadConfig(TIM2ENABLE);
TIM_ClearFlag(TIM2TIM_FLAG_Update);
TIM_ITConfig(TIM2TIM_IT_UpdateENABLE);? /*?Enable?the?TIM_IT_Update?Interrupt?Request?*/
TIM_Cmd(TIM2?DISABLE);
????
????NVIC_InitStructure.NVIC_IRQChannel?=?TIM2_IRQn;
????NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?0;
????NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?0;
????NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;
????NVIC_Init(&NVIC_InitStructure);
????
????
}
void?TIME3_Init(void)
{
TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
????NVIC_InitTypeDef?NVIC_InitStructure;
????RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3??ENABLE);
????
TIM_DeInit(TIM3);
????/*?Time?base?configuration?*/
????TIM_TimebaseStructure.TIM_Period?=?1;????????//1us
????TIM_TimebaseStructure.TIM_Prescaler?=?71;?????//1us
????TIM_TimebaseStructure.TIM_ClockDivision?=?0;
????TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Down;
????TIM_TimebaseInit(TIM3?&TIM_TimebaseStructure);
TIM_ARRPreloadConfig(TIM3ENABLE);
TIM_ClearFlag(TIM3TIM_FLAG_Update);
TIM_ITConfig(TIM3?TIM_IT_Update?ENABLE);?? /*?Enable?the?TIM_IT_Update?Interrupt?Request?*/
TIM_Cmd(TIM3?DISABLE);
????
????NVIC_InitStructure.NVIC_IRQChannel?=?TIM3_IRQn;
????NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?1;
????NVIC_InitStructure.NVIC_IRQChannelS
評論
共有 條評論