PB设置lock_timeout参数(当前连接生效)

本文详细介绍了如何使用SQL语句操作数据库,包括获取并设置锁超时时间,通过查询@@lock_timeout变量来了解当前锁超时设置,并提供了一个示例代码来演示如何将锁超时设置为10分钟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

declare lc_lock_timeout cursor for
select @@lock_timeout USING sqlca_cre;


open lc_lock_timeout;
if sqlca_cre.sqlcode <> 0 then
is_err = "open curor 错误:" + sqlca_cre.sqlerrtext
goto err_handler
end if


fetch lc_lock_timeout into :ls_lock;


close lc_lock_timeout;


messagebox("lock_timeout",ls_lock)


ls_tmp = "set LOCK_TIMEOUT 600000" //等待锁超时10分钟(单位ms)


execute immediate :ls_tmp USING sqlca_cre;
#include "stm32f10x.h" #include "mqtt_demo.h" #include "led.h" #include "mqtt.h" #include "led.h" #include "delay.h" #include "debug.h" #include "dht11.h" #include "BH1750.h" #include "esp8266_uart.h" #include "oled.h" #include "sg90.h" //FC-28土壤湿度******************************************************************************************* void AD_Init(void); uint16_t AD_GetValue(void); uint16_t GetHumidity(int times); /** ****************************************************************************** * @file 基于嵌入式的花卉环境监测系统的设计与实现 * @author LGW * @version V1.0 * @date 2025-03-01 * @brief 光照传感器bh1750 * SCL ---- PA0 * SDA ---- PA1 * @brief 土壤湿度传感器fc-28 * AO ----- PB0 * @brief 温湿度传感器 * OUT ---- PB1 * @brief esp8266 * TX ---- PA3 * RX ---- PA2 * @brief 风扇 PC13 * @brief 水泵 PC14 * @brief 补光灯 PC15 * @brief OLED * SCL ---- PB10 * SDA ---- PB11 ****************************************************************************** **/ int main() { u8 temp; u8 humi; float light; uint32_t heartbeat_tick = 0; uint32_t post_tick = 0,turangshidu = 0; char str_Humidity[10],str_turangshidu[10]; // 字符数组,用于存储字符串 char str_light[10],str_guangzhao[10]; char str_dht11_temp[10],str_kongqiwendu[10]; char str_dht11_Hum[10],str_kongqishidu[10]; char result[50]; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设定优先级分组为2 SysTick_Init(); IO_Init(); Debug_init(); esp8266_uart_init(); Init_BH1750(); TIM1_PWM_Init(); while(1) { openlock(); ESP_delay_ms(1000); ESP_delay_ms(1000); ESP_delay_ms(1000); } // while (Esp8266_Init()) // 配置WiFi以STA联网模式工作 // { // } // while (Mqtt_Connect_Aliyun()) // 配置MQTT链接阿里云 // { // } while(DHT11_Init()) { printf("DHT11 Error \r\n"); delay_ms(1000); } while (1) { if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) == 0) { GPIO_ResetBits(GPIOC, GPIO_Pin_13); mqtt_publish_data(MQTT_PUBLISH_TOPIC, "D1" , 0); // 上报信息到平台服务器send_data } else { GPIO_SetBits(GPIOC, GPIO_Pin_13); } printf("报警:%d\r\n",GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)); DHT11_Read_Data(&temp,&humi); light=read_BH1750(); //读取BH1750的光强数据 printf("温度:%d\r\n",temp); printf("湿度:%d\r\n",humi); printf("光照:%f\r\n",light); printf("\r\n\n"); if(shoudong_sta == 0) { if(temp > 30) { // GPIO_ResetBits(GPIOC,GPIO_Pin_13);// 输出低电平 风扇开 } else { // GPIO_SetBits(GPIOC, GPIO_Pin_13); // 输出高电平 风扇关 } if(humi > 30) { // GPIO_ResetBits(GPIOC,GPIO_Pin_13);// 输出低电平 加湿器开 } else { // GPIO_SetBits(GPIOC, GPIO_Pin_13); // 输出高电平 加湿器关 } if(light > 100) GPIO_SetBits(GPIOC, GPIO_Pin_15); // 输出高电平 遮阳开 else GPIO_ResetBits(GPIOC,GPIO_Pin_15);// 输出低电平 遮阳关 } // ESP_printf("light:%f\r\n",light); mqtt_msg_handle(); // 处理阿里云下发数据,云端数据处理!!! // 每隔5分钟上传设备状态 if ((ESP_GET_TICK() - post_tick) / 1000 >= 5) { post_tick = ESP_GET_TICK(); // mqtt_report_devices_status(); // 上报开发板设备状态到云端 memset(result, 0, sizeof(result)); // 清空 result 数组 snprintf(str_light, sizeof(str_light), "A%d", (unsigned int)light);//将光照强度转为字符串并在字符串前加标识符“A” snprintf(str_dht11_temp, sizeof(str_dht11_temp), "B%d", temp);//将空气温度转为字符串并在字符串前加标识符“C” snprintf(str_dht11_Hum, sizeof(str_dht11_Hum), "C%d", humi);//将空气湿度转为字符串并在字符串前加标识符“D” strcat(result, str_light); strcat(result, str_dht11_temp); strcat(result, str_dht11_Hum); mqtt_publish_data(MQTT_PUBLISH_TOPIC, result , 0); // 上报信息到平台服务器send_data } // 每隔60秒发送心跳包 if ((ESP_GET_TICK() - heartbeat_tick) / 1000 >= 60) { heartbeat_tick = ESP_GET_TICK(); /* 设备端在保活时间间隔内(保护时间在mqtt_connect设置为60s),至少需要发送一次报文,包括ping请求。 连接保活时间的取值范围为30秒~1200秒。建议取值300秒以上。 从物联网平台发送CONNACK响应CONNECT消息时,开始心跳计时。收到PUBLISH、SUBSCRIBE、PING或 PUBACK消息时,会重置计时器。 */ // 发送心跳包,过于频繁发送心跳包,服务器将会持续一段时间不发送响应信息[可选] if (!mqtt_send_heart()) { ESP_delay_ms(200); } else { // 如果断开热点,则重新配置WiFi模块连接热点 while (Esp8266_Init()) ; // 如果断开阿里云,则重新配置MQTT链接阿里云 while (Mqtt_Connect_Aliyun()) ; } } ESP_delay_ms(500); } } 这个程序的openlock();执行后舵机无反应,/***************STM32F103C8T6********************** * 文件名 :main.c * 描述 : 舵机测试 * 实验平台:STM32F103C8T6 * 备注 :使用定时器来产生pwm波,控制舵机动作 * 接口 :TIM1, CH1-PB13, CH2-PB14, CH3-PB15 ****************STM32F103C8T6**********************/ #include "sg90.h" #include "delay.h" /* 配置TIM1复用输出PWM时用到的I/O */ static void TIM1_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//定时器1时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//GPIOB时钟使能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } /*配置TIM1输出的PWM信号的模式,如周期、极性、占空比 */ static void TIM1_Mode_Config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; /* PWM信号电平跳变值 */ u16 CCR1_Val = 0; u16 CCR2_Val = 0; //u16 CCR3_Val = 50000; /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period = 20000 - 1;//定时器周期,20ms TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1;//时钟预分频 TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//计数方式:向上计数 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* PWM1 Mode configuration: Channel1 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//选择定时器模式:tim脉宽调制2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR1_Val; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//极性 TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;//开反向通道 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC1Init(TIM1, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); /* PWM1 Mode configuration: Channel2 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR2_Val; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;//开反向通道 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC2Init(TIM1, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable); /* PWM1 Mode configuration: Channel3 */ /* TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR3_Val; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;//开反向通道 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC3Init(TIM1, &TIM_OCInitStructure); TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); */ TIM_ARRPreloadConfig(TIM1, ENABLE); /* TIM1 enable counter */ TIM_Cmd(TIM1, ENABLE); TIM_CtrlPWMOutputs(TIM1, ENABLE); } /*配置和初始化TIM1 */ void TIM1_PWM_Init(void) { TIM1_GPIO_Config(); TIM1_Mode_Config(); } //舵机摆动 void Servo_out_0 (void) { TIM1->CCR1 = 500;//pwm波高电平持续时间,2ms } void Servo_out_1 (void) { TIM1->CCR1 = 1500;//pwm波高电平持续时间,2ms } void openlock(void) { Servo_out_1(); delay_ms(1000); delay_ms(1000); delay_ms(1000); delay_ms(1000); delay_ms(1000); Servo_out_0(); }
最新发布
05-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值