1 Star 0 Fork 2

zx2591/C语言基于stm32f103c8t6的物联网智能售货机

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.c 8.06 KB
一键复制 编辑 原始数据 按行查看 历史
稚展君 提交于 2020-12-06 22:27 . update main.c.
//=============================================================================
//文件名称:红薯科创开源物联网系统
//功能概要:实现嵌入式设备1分钟上云,这个程序中不检测模组开机电压了
//版权所有:红薯科创
//作者: 王展
//版权更新:2020.12.6
//调试方式:J-Link OB ARM SW方式 5MHz
//=============================================================================
//头文件
#include "stm32f10x.h"
#include "stdio.h"
#include "stdarg.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
#include "usart1.h"
#include "usart2.h"
#include "systick.h"
#include "nbadc.h"
#include "iic.h"
#include "motoradc.h"
#include "hmc5883l.h"
#include "gpio.h"
#include "extinb.h"
#include "stm32f10x_conf.h"
unsigned char IsHaveCar = 0;
unsigned char Hmcstart = 0;//状态标志位,初始化不检测
unsigned char batteryup = 0;//电池电压上传标志位,初始化不上传电压
int batteryupcnt = 0;
extern unsigned char IsLocking;
extern u8 ucM5311StsManage;
extern char wod;//串口一接收到的通讯数据
extern double magnectic_data;
extern double angle;//引用外部角度数据
extern int x,y,z;
extern double dat[200];
extern double sumDatVal;//取样集的元素之和
extern char Usart1_Rx_Buf[USART1_RBUFF_SIZE];
extern int cnt;
int main(void)
{
SystemInit();
float ADC_ConvertedValue;
float ADC_ConvertedValueLocal;//检测模组针脚电压
float ADC_ConvertedValue2;
float ADC_ConvertedValueLocal2; //电机堵转电压采集
int MOTOR_AdcCnt = 0;//电机堵转次数阈值
// SENSOR_GPIO_Config();//触发脉冲管脚初始化
// jiguangconfing();//磁力计管脚初始化
// POWER_KEY_GPIO_Config();//模组以及电机管脚初始化
POWER_KEY2_GPIO_Config();
// LEDT_GPIO_Config();
usart_init();//串口1初始化
usart2_init();//串口2初始化
// Motoroverloadcheckconfig();//电机堵转电压ADC采集初始化
// Adc_Config();//模组ADC电压采集初始化
// I2C_INIT();//磁力计iic初始化
// delay_us(1000);
// Init_HMC5883();//磁力计初始化
// delay_us(2000);
// pingjundate();
// Debug_fmt("sumDatVal:%f\r\n",sumDatVal);
Moudle_OpeningPower();//无论如何先初始化开机
//Debug_fmt("have a car !\r\n");
//LEDT_GPIO_Config();
//MOTOR1_GPIO_Config();//09
//MOTOR2_GPIO_Config();//21
//MOTOR3_GPIO_Config();//22
//MOTOR4_GPIO_Config();//23
while(1)
{
// /*激磁力计开始*/
//
//
// Multiple_read_HMC5883();
// delay_ms(100);//增加时间,防止脉冲变化干扰
// // Debug_fmt("sumDatVal:%f\r\n",sumDatVal);
// if(abs((int)sumDatVal-abs((int)magnectic_data))>50)
// {
//
// Debug_fmt("have a car !\r\n");
// IsHaveCar = 1;
//
//
// }else{
//// delay_ms(5000);
//// delay_ms(5000);
//// delay_ms(5000);//延迟一会,给汽车离开一个时间
//
// Debug_fmt("don't have a car !\r\n");
// IsHaveCar = 0;
// if(IsHaveCar==0 && IsLocking==0)
// {
// //如果锁上方没车 并且 锁是躺着的 就让锁立起来
// //如果没车并且没锁上既锁是躺着的,就让锁立起来
// //PC14拉低 PC15拉高 电机关
//
// GPIO_WriteBit(GPIOB, GPIO_Pin_13,0);
// GPIO_WriteBit(GPIOB, GPIO_Pin_12,1);
// IsLocking = 1;
// // DebugInfoStr("@@@@@@@@@@@@@@@@@@ Close!\r\n");
// ucM5311StsManage =7;//车走就变7,跳到case7去等待脉冲脉冲完跳到case3继续等待
//
// }
//
// }
//
//
//
// /*激磁力计结束*/
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// //Motor堵转电压采集
// ADC_SoftwareStartConvCmd(ADC2, ENABLE); //启动转换
// while(!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC )); //等待转换完成,完成之后置1既跳出while循环
// ADC_ConvertedValue2=ADC_GetConversionValue(ADC2); //获取转换结果*ADC_ConvertedValue*
// ADC_ConvertedValueLocal2=(float)ADC_ConvertedValue2*(3.3/4096); //计算出实际电压值*ADC_ConvertedValueLocal*
//
// //如果采集到的电压数在200-300mv之间就停转
// Debug_fmt("MOTOR_Adc:%f\r\n",ADC_ConvertedValueLocal2);//输出dianjidianya
// if(ADC_ConvertedValueLocal2>0.2)
// { MOTOR_AdcCnt++;
// if(MOTOR_AdcCnt>50){//累加到50个既判定为堵转状态
// GPIO_WriteBit(GPIOB, GPIO_Pin_13,0);
// GPIO_WriteBit(GPIOB, GPIO_Pin_12,0);
// //让锁放下,并且上报数据,然后关闭激光自检
// GPIO_WriteBit(GPIOB, GPIO_Pin_13,1);
// GPIO_WriteBit(GPIOB, GPIO_Pin_12,0);
// delay_ms(2000);
// GPIO_WriteBit(GPIOB, GPIO_Pin_13,0);
// GPIO_WriteBit(GPIOB, GPIO_Pin_12,0);
//
// // PrintfAtCmdNoCheckAck("AT+MIPLNOTIFY=0,0,3200,0,5750,1,14,\"Closedactionfailed\",0,0\r\n");
// ucM5311StsManage = 3;
// MOTOR_AdcCnt = 0;
// Hmcstart = 0;}
// }
// else{
// MOTOR_AdcCnt = 0;
// }
//
//
//
//
//
//
//
//
//
////上传电池电压
// ADC_SoftwareStartConvCmd(ADC1, ENABLE); //启动转换
// while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换完成,完成之后置1既跳出while循环
// ADC_ConvertedValue=ADC_GetConversionValue(ADC1); //获取转换结果*ADC_ConvertedValue*
// ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096); //计算出实际电压值*ADC_ConvertedValueLocal*
// Debug_fmt("%d\r\n",ADC_ConvertedValueLocal);
// // sprintf();
// if(batteryup)
// {
// batteryupcnt++;
// if(batteryupcnt>0x7FFF*24)
// {
//
// if(NBiot_Fmetd(2000,5,"OK","AT+MIPLNOTIFY=0,0,3200,0,5750,1,1,\"CurrentPower:%f\",0,0\r\n",ADC_ConvertedValueLocal))
// {clearbufrecv();
// Debug_fmt("battery up success!\r\n");
// batteryupcnt = 0;
// }
// else
// {
// clearbufrecv();
// Debug_fmt("battery up failed\r\n!");
//
// }
// }
// }
// if(batteryup)
// {
// Debug_fmt("\r\n go stop mode\r\n");
// exti_init();//外部中断配置
//// system_enter_stop();//进入STOP模式
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);//使能PWR外设时钟
// PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); //进入stop模式中断唤醒
// SystemInit();
//exti_init();//外部中断配置
//
////唤醒后初始化所有外设
//
// SENSOR_GPIO_Config();//触发脉冲管脚初始化
// jiguangconfing();//磁力计管脚初始化
// POWER_KEY_GPIO_Config();//模组以及电机管脚初始化
// usart_init();//串口1初始化
// usart2_init();//串口2初始化
// Motoroverloadcheckconfig();//电机堵转电压ADC采集初始化
// Adc_Config();//模组ADC电压采集初始化
// I2C_INIT();//磁力计iic初始化
// delay_us(1000);
// Init_HMC5883();//磁力计初始化
// delay_us(2000);
//// pingjundate();
// Debug_fmt("sumDatVal_openstop:%f\r\n",sumDatVal);
// Debug_fmt("LEAVE STOP\r\n");
//// Moudle_OpeningPower();//无论如何先初始化开机
//
// }
// GPIO_WriteBit(GPIOB,GPIO_Pin_6,0);//GPIO_WriteBit(GPIOA,GPIO_Pin_6,1);
// Delaymotor_mss(6000);
// GPIO_WriteBit(GPIOB,GPIO_Pin_6,1);
//GPIO_SetBits(GPIOA, GPIO_Pin_1);
////GPIO_WriteBit(GPIOB,GPIO_Pin_6,0);
// Delaymotor_mss(6000);
//进入模组控制
// Debug_fmt("\r\n go\r\n");
Delaymotor_mss(1000);
GPRS_Controller();
//Debug_fmt("HELOO SUCCESS FOR YOU WZ !\r\n");
//GPIO_ResetBits(GPIOA, GPIO_Pin_1);
//Delaymotor_mss(1000);
//GPIO_SetBits(GPIOA, GPIO_Pin_1);
//Delaymotor_mss(1000);
// GPIO_SetBits(GPIOA, GPIO_Pin_6);
// GPIO_ResetBits(GPIOA, GPIO_Pin_7);
//
// Delaymotor_mss(6000);
//
// GPIO_ResetBits(GPIOA, GPIO_Pin_6);
// GPIO_ResetBits(GPIOA, GPIO_Pin_7);
//
// Delaymotor_mss(6000);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/zx2591/shouhuoji.git
[email protected]:zx2591/shouhuoji.git
zx2591
shouhuoji
C语言基于stm32f103c8t6的物联网智能售货机
master

搜索帮助