PB程序中如何测试网络连接是否中断?

使用connect using sqlca连接数据库,如果和服务器网络不通,会等待很长时间(大约30~60秒)

通过Windows自带的icmp.dll,可以对服务器进行Ping,在很短时间内即可判断网络是否连通。

 

我将网上的一个例子封装为类n_cst_ping,来简化调用过程。

 

 

调用方式:

 


 

感谢原作者:hygougou

http://topic.csdn.net/t/20050412/18/3930736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
STM32F103C8T6是一款基于Cortex-M3内核的微控制器,它提供了丰富的外设接口,包括GPIO(通用输入输出)用于控制引脚的输入/输出和中断功能。要同时使用PB12(GPIOB的第12号引脚)和PA12(GPIOA的第12号引脚)作为外部中断源,你需要按照以下步骤操作: 1. **配置GPIO引脚**: - 首先,需要在STM32CubeMX或HAL库配置PB12和PA12为中断模式。设置它们为推挽输出(如果它们原本不是),并启用中断请求。 ```c GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // 选择PB12或PA12 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IT_RISING_FALLING; // 中断模式,上升沿和下降沿触发 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 设置速度 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // 推挽输出 HAL_GPIO_Init(GPIOB, &GPIO_InitStructure); // 对于PB12,替换GPIOB为GPIOA if选择PA12 ``` 2. **配置中断系统**: - 在STM32F103C8T6中断系统由EXTI(外部中断)控制器管理。你需要激活相应的EXTI线,并关联到对应的中断向量。 ```c EXTI_InitTypeDef EXTI_InitStructure; EXTI_InitStructure.EXTI_Line = EXTI_Line_12; // EXTI线对应PB12或PA12,这里假设是EXTI Line 12 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; // 外部中断模式 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; // 上升沿和下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; // 启用中断 HAL_EXTI_Init(&EXTI_InitStructure); // 初始化EXTI ``` 3. **连接中断向量**: - 在你的中断服务函数(ISRs),将这两个中断的处理程序连接起来。你可能需要定义两个不同的函数,分别对应PB12和PA12的中断事件。 ```c void EXTI12_IRQHandler(void) { // 这里处理PB12和PA12中断共用的代码,根据实际中断来源判断是PB12还是PA12 } void EXTI1_IRQHandler() { // 如果中断线不同,可能需要定义不同的函数 } ``` 4. **注册中断**: - 在系统初始化完成后,通过`HAL_NVIC_Register ISR`函数注册中断服务函数。 ```c HAL_NVIC_SetPriority(EXTI12_IRQn, YOUR_PRIORITY_LEVEL, 0); // 设置中断优先级 HAL_NVIC_EnableIRQ(EXTI12_IRQn); // 开启中断 ``` 请注意,上述代码片段是简化的示例,实际应用需要根据具体项目配置进行调整,并确保中断向量和优先级设置正确。此外,记得在中断服务函数正确处理中断逻辑,以及处理中断后可能的回调和状态更新。如果你需要更多细节或有其他问题,请告诉我,我会给出更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值