资源简介
STM32智能家居项目源代码,基于ZigBee和STM32的智能家居控制系统(IP柜)的设计与实现。
代码片段和文件信息
#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) //数据收集函数
{
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控制电缆的位数
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
相关资源
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- IAR7.20H破解机注册机
- cc2530寄存器手册
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- 课程设计蔬菜大棚自动控制系统,包
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
评论
共有 条评论