当前位置: 首页 > news >正文

【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

00. 目录

文章目录

    • 00. 目录
    • 01. NVIC相关函数
      • 1.1 NVIC_PriorityGroupConfig函数
      • 1.2 NVIC_PriorityGroup类型
      • 1.3 NVIC_Init函数
      • 1.4 NVIC_InitTypeDef类型
    • 02. 外部中断相关API
      • 2.1 GPIO_EXTILineConfig
      • 2.2 EXTI_Init
      • 2.3 EXTI_GetITStatus
      • 2.4 EXTI_ClearITPendingBit
      • 2.5 中断回调函数
    • 03. 对射式红外传感器计次接线图
    • 04. 对射式红外传感器计次程序示例
    • 05. 旋转编码器计次接线图
    • 06. 旋转编码器计次程序示例
    • 07. 示例程序下载
    • 08. 附录

01. NVIC相关函数

相关头文件: misc.h

1.1 NVIC_PriorityGroupConfig函数

/*** @brief  Configures the priority grouping: pre-emption priority and subpriority.* @param  NVIC_PriorityGroup: specifies the priority grouping bits length. *   This parameter can be one of the following values:*     @arg NVIC_PriorityGroup_0: 0 bits for pre-emption priority*                                4 bits for subpriority*     @arg NVIC_PriorityGroup_1: 1 bits for pre-emption priority*                                3 bits for subpriority*     @arg NVIC_PriorityGroup_2: 2 bits for pre-emption priority*                                2 bits for subpriority*     @arg NVIC_PriorityGroup_3: 3 bits for pre-emption priority*                                1 bits for subpriority*     @arg NVIC_PriorityGroup_4: 4 bits for pre-emption priority*                                0 bits for subpriority* @retval None*/
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
功能:设置优先级分组:先占优先级和从优先级
参数:NVIC_PriorityGroup:优先级分组位长度     
返回值:

1.2 NVIC_PriorityGroup类型

/** @defgroup Preemption_Priority_Group * @{*/#define NVIC_PriorityGroup_0         ((uint32_t)0x700) /*!< 0 bits for pre-emption priority4 bits for subpriority */
#define NVIC_PriorityGroup_1         ((uint32_t)0x600) /*!< 1 bits for pre-emption priority3 bits for subpriority */
#define NVIC_PriorityGroup_2         ((uint32_t)0x500) /*!< 2 bits for pre-emption priority2 bits for subpriority */
#define NVIC_PriorityGroup_3         ((uint32_t)0x400) /*!< 3 bits for pre-emption priority1 bits for subpriority */
#define NVIC_PriorityGroup_4         ((uint32_t)0x300) /*!< 4 bits for pre-emption priority0 bits for subpriority */

1.3 NVIC_Init函数

/*** @brief  Initializes the NVIC peripheral according to the specified*         parameters in the NVIC_InitStruct.* @param  NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure that contains*         the configuration information for the specified NVIC peripheral.* @retval None*/
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
功能:根据 NVIC_InitStruct 中指定的参数初始化外设 NVIC 寄存器
参数:NVIC_InitStruct:指向结构 NVIC_InitTypeDef 的指针,包含了外设 GPIO 的配置信息     
返回值:

1.4 NVIC_InitTypeDef类型

typedef struct
{uint8_t NVIC_IRQChannel; //指定要启用或禁用的IRQ通道uint8_t NVIC_IRQChannelPreemptionPriority;//指定的IRQ通道的抢占优先级uint8_t NVIC_IRQChannelSubPriority; //指定的IRQ通道的次级优先级FunctionalState NVIC_IRQChannelCmd; //IRQ通道是启用还是禁用 
} NVIC_InitTypeDef;

NVIC_IRQChannel取值

#ifdef STM32F10X_MDADC1_2_IRQn                 = 18,     /*!< ADC1 and ADC2 global Interrupt                       */USB_HP_CAN1_TX_IRQn         = 19,     /*!< USB Device High Priority or CAN1 TX Interrupts       */USB_LP_CAN1_RX0_IRQn        = 20,     /*!< USB Device Low Priority or CAN1 RX0 Interrupts       */CAN1_RX1_IRQn               = 21,     /*!< CAN1 RX1 Interrupt                                   */CAN1_SCE_IRQn               = 22,     /*!< CAN1 SCE Interrupt                                   */EXTI9_5_IRQn                = 23,     /*!< External Line[9:5] Interrupts                        */TIM1_BRK_IRQn               = 24,     /*!< TIM1 Break Interrupt                                 */TIM1_UP_IRQn                = 25,     /*!< TIM1 Update Interrupt                                */TIM1_TRG_COM_IRQn           = 26,     /*!< TIM1 Trigger and Commutation Interrupt               */TIM1_CC_IRQn                = 27,     /*!< TIM1 Capture Compare Interrupt                       */TIM2_IRQn                   = 28,     /*!< TIM2 global Interrupt                                */TIM3_IRQn                   = 29,     /*!< TIM3 global Interrupt                                */TIM4_IRQn                   = 30,     /*!< TIM4 global Interrupt                                */I2C1_EV_IRQn                = 31,     /*!< I2C1 Event Interrupt                                 */I2C1_ER_IRQn                = 32,     /*!< I2C1 Error Interrupt                                 */I2C2_EV_IRQn                = 33,     /*!< I2C2 Event Interrupt                                 */I2C2_ER_IRQn                = 34,     /*!< I2C2 Error Interrupt                                 */SPI1_IRQn                   = 35,     /*!< SPI1 global Interrupt                                */SPI2_IRQn                   = 36,     /*!< SPI2 global Interrupt                                */USART1_IRQn                 = 37,     /*!< USART1 global Interrupt                              */USART2_IRQn                 = 38,     /*!< USART2 global Interrupt                              */USART3_IRQn                 = 39,     /*!< USART3 global Interrupt                              */EXTI15_10_IRQn              = 40,     /*!< External Line[15:10] Interrupts                      */RTCAlarm_IRQn               = 41,     /*!< RTC Alarm through EXTI Line Interrupt                */USBWakeUp_IRQn              = 42      /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */  
#endif /* STM32F10X_MD */  

成员NVIC_IRQChannelPreemptionPriority可赋的值:最大取值15,具体有上面设置的优先级组中规定的位数决定
成员NVIC_IRQChannelSubPriority可赋的值:最大取值15,具体有上面设置的优先级组中规定的位数决定
成员NVIC_IRQChannelCmd可赋的值:ENABLE or DISABLE

02. 外部中断相关API

2.1 GPIO_EXTILineConfig

void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
功能:选择 GPIO 管脚用作外部中断线路
参数:GPIO_PortSource: 选择用作外部中断线源的 GPIO 端口GPIO_PinSource:待设置的外部中断线路    
返回值:

参数:GPIO_PortSource 选择用于EXTI线的GPIO端口

/** @defgroup GPIO_Port_Sources * @{*/#define GPIO_PortSourceGPIOA       ((uint8_t)0x00)
#define GPIO_PortSourceGPIOB       ((uint8_t)0x01)
#define GPIO_PortSourceGPIOC       ((uint8_t)0x02)
#define GPIO_PortSourceGPIOD       ((uint8_t)0x03)
#define GPIO_PortSourceGPIOE       ((uint8_t)0x04)
#define GPIO_PortSourceGPIOF       ((uint8_t)0x05)
#define GPIO_PortSourceGPIOG       ((uint8_t)0x06)

参数:GPIO_PortSource 选择用于EXTI线的GPIO端口

/** @defgroup GPIO_Pin_sources * @{*/#define GPIO_PinSource0            ((uint8_t)0x00)
#define GPIO_PinSource1            ((uint8_t)0x01)
#define GPIO_PinSource2            ((uint8_t)0x02)
#define GPIO_PinSource3            ((uint8_t)0x03)
#define GPIO_PinSource4            ((uint8_t)0x04)
#define GPIO_PinSource5            ((uint8_t)0x05)
#define GPIO_PinSource6            ((uint8_t)0x06)
#define GPIO_PinSource7            ((uint8_t)0x07)
#define GPIO_PinSource8            ((uint8_t)0x08)
#define GPIO_PinSource9            ((uint8_t)0x09)
#define GPIO_PinSource10           ((uint8_t)0x0A)
#define GPIO_PinSource11           ((uint8_t)0x0B)
#define GPIO_PinSource12           ((uint8_t)0x0C)
#define GPIO_PinSource13           ((uint8_t)0x0D)
#define GPIO_PinSource14           ((uint8_t)0x0E)
#define GPIO_PinSource15           ((uint8_t)0x0F)

2.2 EXTI_Init

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
功能:根据 EXTI_InitStruct 中指定的参数初始化外设 EXTI 寄存器
参数:EXTI_InitStruct:指向结构 EXTI_InitTypeDef 的指针,包含了外设 EXTI 的配置信息 
返回值:

EXTI_InitTypeDef类型

typedef struct
{uint32_t EXTI_Line; 				//中断线EXTIMode_TypeDef EXTI_Mode; 		//中断模式EXTITrigger_TypeDef EXTI_Trigger; 	//中断触发方式FunctionalState EXTI_LineCmd; 		//中断功能使能
}EXTI_InitTypeDef;

EXTI_Line

/** @defgroup EXTI_Lines * @{*/#define EXTI_Line0       ((uint32_t)0x00001)  /*!< External interrupt line 0 */
#define EXTI_Line1       ((uint32_t)0x00002)  /*!< External interrupt line 1 */
#define EXTI_Line2       ((uint32_t)0x00004)  /*!< External interrupt line 2 */
#define EXTI_Line3       ((uint32_t)0x00008)  /*!< External interrupt line 3 */
#define EXTI_Line4       ((uint32_t)0x00010)  /*!< External interrupt line 4 */
#define EXTI_Line5       ((uint32_t)0x00020)  /*!< External interrupt line 5 */
#define EXTI_Line6       ((uint32_t)0x00040)  /*!< External interrupt line 6 */
#define EXTI_Line7       ((uint32_t)0x00080)  /*!< External interrupt line 7 */
#define EXTI_Line8       ((uint32_t)0x00100)  /*!< External interrupt line 8 */
#define EXTI_Line9       ((uint32_t)0x00200)  /*!< External interrupt line 9 */
#define EXTI_Line10      ((uint32_t)0x00400)  /*!< External interrupt line 10 */
#define EXTI_Line11      ((uint32_t)0x00800)  /*!< External interrupt line 11 */
#define EXTI_Line12      ((uint32_t)0x01000)  /*!< External interrupt line 12 */
#define EXTI_Line13      ((uint32_t)0x02000)  /*!< External interrupt line 13 */
#define EXTI_Line14      ((uint32_t)0x04000)  /*!< External interrupt line 14 */
#define EXTI_Line15      ((uint32_t)0x08000)  /*!< External interrupt line 15 */
#define EXTI_Line16      ((uint32_t)0x10000)  /*!< External interrupt line 16 Connected to the PVD Output */
#define EXTI_Line17      ((uint32_t)0x20000)  /*!< External interrupt line 17 Connected to the RTC Alarm event */
#define EXTI_Line18      ((uint32_t)0x40000)  /*!< External interrupt line 18 Connected to the USB Device/USB OTG FSWakeup from suspend event */                                    
#define EXTI_Line19      ((uint32_t)0x80000)  /*!< External interrupt line 19 Connected to the Ethernet Wakeup event */

成员EXTI_Mode可赋的值:(中断模式)

typedef enum
{EXTI_Mode_Interrupt = 0x00,//中断EXTI_Mode_Event = 0x04   //事件
}EXTIMode_TypeDef;

成员EXTI_Trigger可赋的值(中断)

typedef enum
{EXTI_Trigger_Rising = 0x08, //上升沿触发EXTI_Trigger_Falling = 0x0C, //下降沿触发EXTI_Trigger_Rising_Falling = 0x10 //双边延触发
}EXTITrigger_TypeDef;

成员EXTI_LineCmd可赋的值: ENABLE or DISABLE

2.3 EXTI_GetITStatus

/*** @brief  Checks whether the specified EXTI line is asserted or not.* @param  EXTI_Line: specifies the EXTI line to check.*   This parameter can be:*     @arg EXTI_Linex: External interrupt line x where x(0..19)* @retval The new state of EXTI_Line (SET or RESET).*/
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
功能:检查指定的 EXTI 线路触发请求发生与否
参数:EXTI_Line:待检查 EXTI 线路的挂起位 
返回值:EXTI_Line 的新状态(SET 或者 RESET) 

2.4 EXTI_ClearITPendingBit

/*** @brief  Clears the EXTI's line pending bits.* @param  EXTI_Line: specifies the EXTI lines to clear.*   This parameter can be any combination of EXTI_Linex where x can be (0..19).* @retval None*/
void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
功能:清除 EXTI 线路挂起位
参数:EXTI_Line:待清除 EXTI 线路的挂起位 
返回值:

2.5 中断回调函数

EXPORT EXTI0_IRQHandler
EXPORT EXTI1_IRQHandler
EXPORT EXTI2_IRQHandler
EXPORT EXTI3_IRQHandler
EXPORT EXTI4_IRQHandler
EXPORT EXTI9_5_IRQHandler
EXPORT EXTI15_10_IRQHandler

常用的中断服务函数格式为:

void EXTI3_IRQHandler(void)
{if(EXTI_GetITStatus(EXTI_Line3)!=RESET)//判断某个线上的中断是否发生{//中断逻辑…EXTI_ClearITPendingBit(EXTI_Line3); //清除 LINE 上的中断标志位} 
}

03. 对射式红外传感器计次接线图

在这里插入图片描述

04. 对射式红外传感器计次程序示例

CountSensor.h

#ifndef __COUNT_SENSOR_H__
#define __COUNT_SENSOR_H__#include "stm32f10x.h" void count_sensor_init(void);uint16_t CountSensor_Get(void);#endif /*__COUNT_SENSOR_H__*/

CountSensor.c

#include "CountSensor.h"uint16_t CountSensor_Count = 0;//初始化
void count_sensor_init(void)
{GPIO_InitTypeDef GPIO_InitStruct;EXTI_InitTypeDef EXTI_InitStruct;NVIC_InitTypeDef NVIC_InitStruct;//使能时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//初始化GPIOGPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU ;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_14;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStruct);//初始化外部中断线GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);//初始化外部中断EXTI_InitStruct.EXTI_Line = EXTI_Line14;EXTI_InitStruct.EXTI_LineCmd = ENABLE ;EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_Init(&EXTI_InitStruct);//初始化NVICNVIC_InitStruct.NVIC_IRQChannel = EXTI15_10_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE ;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_InitStruct);
}uint16_t CountSensor_Get(void)
{return CountSensor_Count;
}void EXTI15_10_IRQHandler(void)
{if (EXTI_GetITStatus(EXTI_Line14) == SET){/*如果出现数据乱跳的现象,可再次判断引脚电平,以避免抖动*/if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14) == 0){CountSensor_Count ++;}EXTI_ClearITPendingBit(EXTI_Line14);}
}

main.c

#include "stm32f10x.h"#include "delay.h"
#include "oled.h"
#include "CountSensor.h"int main(void){		 //初始化OLED_Init();OLED_ShowString(1, 1, "Count:");NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);count_sensor_init();while(1){OLED_ShowNum(1 , 7, CountSensor_Get(), 5);}return 0;}

05. 旋转编码器计次接线图

在这里插入图片描述

【其它】

在这里插入图片描述

06. 旋转编码器计次程序示例

encode.h

#ifndef __ENCODE_H__
#define __ENCODE_H__#include "stm32f10x.h"   void Encoder_Init(void);
int16_t Encoder_Get(void);#endif /*__ENCODE_H__*/

encode.c

#include "encode.h"int16_t Encoder_Count;void Encoder_Init(void)
{NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource1);EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line1;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_Init(&EXTI_InitStructure);NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;NVIC_Init(&NVIC_InitStructure);
}int16_t Encoder_Get(void)
{int16_t Temp;Temp = Encoder_Count;Encoder_Count = 0;return Temp;
}void EXTI0_IRQHandler(void)
{if (EXTI_GetITStatus(EXTI_Line0) == SET){/*如果出现数据乱跳的现象,可再次判断引脚电平,以避免抖动*/if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0) == 0){if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0){Encoder_Count --;}}EXTI_ClearITPendingBit(EXTI_Line0);}
}void EXTI1_IRQHandler(void)
{if (EXTI_GetITStatus(EXTI_Line1) == SET){/*如果出现数据乱跳的现象,可再次判断引脚电平,以避免抖动*/if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0){if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0) == 0){Encoder_Count ++;}}EXTI_ClearITPendingBit(EXTI_Line1);}
}

main.c

#include "stm32f10x.h"#include "delay.h"
#include "oled.h"
#include "CountSensor.h"
#include "encode.h"int16_t Num;int main(void){		 //初始化OLED_Init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Encoder_Init();OLED_ShowString(1, 1, "Num:");while (1){Num += Encoder_Get();OLED_ShowSignedNum(1, 5, Num, 5);}return 0;}

07. 示例程序下载

07-对射式红外传感器计次.rar

08-旋转编码器计次.rar

08. 附录

参考: 【STM32】江科大STM32学习笔记汇总

相关文章:

【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

00. 目录 文章目录 00. 目录01. NVIC相关函数1.1 NVIC_PriorityGroupConfig函数1.2 NVIC_PriorityGroup类型1.3 NVIC_Init函数1.4 NVIC_InitTypeDef类型 02. 外部中断相关API2.1 GPIO_EXTILineConfig2.2 EXTI_Init2.3 EXTI_GetITStatus2.4 EXTI_ClearITPendingBit2.5 中断回调函…...

后端项目操作数据库-中枢组件Service调用Mapper实现增删改查-实例

接上篇 使用MyBatis配置Mapper实现增删改查 1.Service的基本作用 Service在代码中的的作用是调用Mapper、被Controller调用。是后端项目中非常重要的组件。 用于设计业务流程、业务逻辑&#xff0c;以保障数据的完整性、有效性、安全性。 2. Service使用举例——“添加相册”…...

kafka学习笔记--节点的服役与退役

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…...

2023-12-16:用go语言,给定整数数组arr,求删除任一元素后, 新数组中长度为k的子数组累加和的最大值。 来自字节。

2023-12-16&#xff1a;用go语言&#xff0c;给定整数数组arr&#xff0c;求删除任一元素后&#xff0c; 新数组中长度为k的子数组累加和的最大值。 来自字节。 答案2023-12-16&#xff1a; 来自左程云。 灵捷3.5 大体步骤如下&#xff1a; 算法 maxSum1 分析&#xff1…...

libxls - 编译

文章目录 libxls - 编译概述笔记静态库工程测试控制台exe工程测试备注备注END libxls - 编译 概述 想处理.xls格式的excel文件. 查了一下libxls库可以干这个事. 库地址 https://github.com/libxls/libxls.git 但是这个库的makefile写的有问题, 在mingw和WSL下都编译不了. 好在…...

自建私有git进行项目发布

自建私有git进行博客项目发布 之前尝试过通过建立私有git仓库&#xff0c;来发布自己的hexo静态博客&#xff0c;但是失败了&#xff0c;今天尝试了一下午&#xff0c;算是有了结果。下面记录我的过程。 我的需求&#xff1a; 我有一个服务器&#xff0c;希望在服务器端建一…...

华为HCIP认证H12-821题库上

1、2.OSPF核心知识 &#xff08;单选题&#xff09;下面关于0SPF的特殊区域&#xff0c;描述错误的是: A、Totally Stub Area允许ABR发布缺省的三类LSA,不接受五类LSA和细化三类LSA B、NSSA Area和Stub区域的不同在于该区域允许自治系统外部路由的引入&#xff0c;由ABR发布…...

Web安全漏洞分析—文件包含

在当今数字化时代&#xff0c;随着Web应用程序的广泛应用&#xff0c;网络安全问题愈加凸显。其中&#xff0c;文件包含漏洞作为一种常见但危险的安全隐患&#xff0c;为恶意攻击者提供了可乘之机。在这篇博客中&#xff0c;我们将深入探讨文件包含漏洞的本质、攻击手法以及应对…...

C++入门【9-C++循环】

C 循环 有的时候&#xff0c;可能需要多次执行同一块代码。一般情况下&#xff0c;语句是顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 编程语言提供了允许更为复杂的执行路径的多种控制结构。 循环语句允许我们多次…...

Python3 数字(Number) ----20231215

Python3 数字(Number) # Python3 数字(Number)# Python 数字数据类型用于存储数值。 # 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。# 以下实例在变量赋值时 Number 对象将被创建: var1 = 1 var2 = 10# 您也可以使用del语句删除一些数…...

PyQt6 QToolBar工具栏控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计44条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…...

nodejs+vue+微信小程序+python+PHP基于大数据的银行信用卡用户的数仓系统的设计与实现-计算机毕业设计推荐

银行信用卡用户的数仓系统综合网络空间开发设计要求。目的是将银行信用卡用户的数仓系统从传统管理方式转换为在网上管理&#xff0c;完成银行信用卡用户的数仓管理的方便快捷、安全性高、交易规范做了保障&#xff0c;目标明确。银行信用卡用户的数仓系统可以将功能划分为管理…...

EMC RI/CI测试方案助您对抗电磁设备干扰!

方案背景 电磁或射频干扰的敏感性&#xff0c;会给工程师带来重大的风险和安全隐患。尤其是在工业、船用和医疗设备环境。这些环境系统中的控制、导航、监控、通信和警报等关键零部件必须具备电磁抗扰水平&#xff0c;以确保系统始终正常运行。 抗扰系统测试方案一般分为传导…...

【机器学习】数据降维

非负矩阵分解(NMF) sklearn.decomposition.NMF找出两个非负矩阵&#xff0c;即包含所有非负元素(W&#xff0c;H)的矩阵&#xff0c;其乘积近似于非负矩阵x。这种因式分解可用于例如降维、源分离或主题提取。 主成分分析(PCA) sklearn.decomposition.PCA使用数据的奇异值分解…...

vue3路由跳转及传参

1.创建项目及路由 1.1 创建文件时记得勾选上vue-router&#xff0c;没有勾选也没有关系 // vue3安装命令 npm create vuelatest // 以下选项可根据自己所需&#xff0c;进行选择&#xff0c;不懂就翻译 ✔ Project name: … <your-project-name> ✔ Add TypeScript? …...

cesium 自定义贴图,shadertoy移植教程。

1.前言 cesium中提供了一些高级的api&#xff0c;可以自己写一些shader来制作炫酷的效果。 ShaderToy 是一个可以在线编写、测试和分享图形渲染着色器的网站。它提供了一个图形化的编辑器&#xff0c;可以让用户编写基于 WebGL 的 GLSL 着色器代码&#xff0c;并实时预览渲染结…...

引用阿里图标库,不知道对应的图标是什么,可在本地显示图标ui,再也不要担心刚来不知道公司图标对应的是什么了

项目中使用了阿里的图标库&#xff0c;但是无法看到对应显示什么&#xff0c;每次都要去阿里图标库里面找 在下载下来的文件中会发现有两个文件一个是iconfont.css和iconfont.json&#xff0c; 这两个文件的数据可以拿到然后显示在页面上 有两个问题&#xff1a; 1&#xff1a…...

HandlerMethodArgumentResolver用于统一获取当前登录用户

这里记录回顾一些知识&#xff0c;不然就快忘记啦。 环境&#xff1a;SpringBoot 2.0.4.RELEASE需求&#xff1a;很多Controller方法&#xff0c;刚进来要先获取当前登录用户的信息&#xff0c;以便做后续的用户相关操作。准备工作&#xff1a;前端每次请求都传token&#xff0…...

记录 | mac打开终端时报错:login: /opt/homebrew/bin/zsh: No such file or directory [进程已完成]

mac打开终端时报错&#xff1a;login: /opt/homebrew/bin/zsh: No such file or directory [进程已完成]&#xff0c;导致终端没有办法使用的情况 说明 zsh 没有安装或者是安装路径不对 可以看看 /bin 下有没有 zsh&#xff0c;若没有&#xff0c;肯定是有 bash 那就把终端默…...

anolisos8.8安装显卡+CUDA工具+容器运行时支持(containerd/docker)+k8s部署GPU插件

anolisos8.8安装显卡及cuda工具 一、目录 1、测试环境 2、安装显卡驱动 3、安装cuda工具 4、配置容器运行时 5、K8S集群安装nvidia插件 二、测试环境 操作系统&#xff1a;Anolis OS 8.8 内核版本&#xff1a;5.10.134-13.an8.x86_64 显卡安装版本&#xff1a;525.147.05 c…...

Golang 链表的创建和读取 小记

文章目录 链表的相关知识链表的创建:模拟方式建立链表的**递归创建** 链表的读取遍历读取递归读取 完整代码 链表的相关知识 链表有时会具有头节点&#xff0c;头节点的指针指向第一个节点的地址&#xff0c;其本身的数据域可以根据自己的选择进行赋值   接下来我将以将int转…...

实验记录:深度学习模型收敛速度慢有哪些原因

深度学习模型收敛速度慢有哪些原因&#xff1f; 学习率设置不当&#xff1a; 学习率是算法中一个重要的超参数&#xff0c;它控制模型参数在每次迭代中的更新幅度。如果学习率过大&#xff0c;可能会导致模型在训练过程中的振荡&#xff0c;进而影响到收敛速度&#xff1b;如果…...

Arris VAP2500 list_mac_address未授权RCE漏洞复现

0x01 产品简介 Arris VAP2500是美国Arris集团公司的一款无线接入器产品。 0x02 漏洞概述 Arris VAP2500 list_mac_address接口处命令执行漏洞,未授权的攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x03 复现环境 FOFA…...

【Jenkins】节点 node、凭据 credentials、任务 job

一、节点 node Jenkins在安装并初始化完成后&#xff0c;会有一个主节点&#xff08;Master Node&#xff09;&#xff0c;默认情况下主节点可以同时运行的任务数是2&#xff0c;可以在节点配置中修改&#xff08;系统管理/节点和云管理&#xff09;。 Jenkins中的节点&#…...

华为OD机试 - 高效货运(Java JS Python C)

题目描述 老李是货运公司承运人,老李的货车额定载货重量为 wt。 现有两种货物: 货物 A 单件重量为 wa,单件运费利润为 pa货物 B 单件重量为 wb,单件运费利润为 pb老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割…...

基于python netmiko去ssh备份网络设备配置

自己为了便利写出来的基于python netmiko去ssh备份网络设备配置&#xff0c;用过secureCRT的脚本去备份设备配置&#xff0c;但是它没有图形化界面&#xff0c;使用不方便&#xff0c;自己就重新用python开发了一个&#xff0c;同时用pyinstaller打包成可执行程序&#xff08;这…...

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 Slover 部分

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 Slover 部分 概述Solver 在多模态发言人识别中的作用Solver 在多模态发言人识别中的重要性Solver 的工作原理 二次规划二次规划的基本形式二次规划的特点二次规划在多模态发言中的应用 (我的理解) 代码详解数…...

爬虫工作量由小到大的思维转变---<第十二章 Scrapy之sql存储与爬虫高效性的平衡艺术>

前言: (本文仅属于技术性探讨,不属于教文) 刚好&#xff0c;前阵子团队还在闲聊这个问题呢。你知道吗&#xff0c;在数据收集这个行当里&#xff0c;怎么存数据这问题就跟“先有鸡还是先有蓝”一样&#xff0c;没完没了的循环往复。老规矩&#xff0c;咱们先搞清楚我们的“鸡…...

修改Docker0和容器的地址

修改Docker0和容器的地址 1. 需求 默认服务器安装完Docker-ce后会给docker0分配172.17.0.1/16地址. 公司新接入一个网段正好与172.17.0.1/16冲突,此时访问这台服务器的容器时就会发生网络不可达. 2. 解决方法 修改/etc/docker/daemon.json 加入一个自定义网段 vim /etc/d…...

弹性网络优化算法

3.3、Elastic-Net算法使用 这是scikit-learn官网给出的弹性网络回归的&#xff0c;损失函数公式&#xff0c;注意&#xff0c;它用的矩阵表示&#xff0c;里面用到范数运算。 min ⁡ w 1 2 n samples ∣ ∣ X w − y ∣ ∣ 2 2 α ρ ∣ ∣ w ∣ ∣ 1 α ( 1 − ρ ) 2 ∣ ∣…...

泰安网站的建设/海口百度seo公司

1. 前言 说起 Github&#xff0c;大家可能都觉得那只是程序员的聚集地。今天就要告诉大家&#xff0c;Github 不仅仅是 Coder 们的专属&#xff0c;它同时也是一个巨大的资源宝库&#xff01; 由于我也算是个半吊子的程序员了&#xff0c;所以用 Github 也算久的了&#xff0…...

网站建设及优化 赣icp/免费网站的平台

修改接收端的WCF config文件,注意&#xff0c;如果server端接收request超长&#xff0c;则修改server端config,如果是client 接收response超长&#xff0c;则修改client端,建议两边都修改,保持一致 <bindings> <wsHttpBinding> <binding name"…...

网页版梦幻西游官网/武汉网站seo德升

功能单元的最大扇入扇出工具分析文档名称&#xff1a;功能单元最大扇入扇出工具分析作 者:日 期&#xff1a;1. 概念由于度量的目标是C源代码&#xff0c;所以“功能单元的最大扇入扇出”的含义如下&#xff1a;功能单元&#xff1a;c语言的函数。扇入&#xff1a;有多少其他函…...

做网站前台后台是怎么连接的/北大青鸟培训机构官网

【记录】ASP&period;NET IIS ISAPI&lowbar;Rewrite下载地址(Lite 免费版):Download ISAPI_Rewrite 3 配置(导入自定义 httpd.ini 文件): IIS ISAPI 筛选器(不需要重写的站点可以移除): 参考资料: 主 ...数据库连接JDBC和数据库连接池C3P0自定义的java封装类数据库连接J…...

wordpress 插入pdf/快速排名优化公司

第一次接触王老师的大数据课程是在2014年底&#xff0c;当时在51CTO上有了spark六阶段&#xff0c;当时真的太吸引我了&#xff0c;但是由于是学生&#xff0c;所以没那么多钱去买教程&#xff0c;真的太后悔了&#xff0c;但是呢&#xff01;后来看到了《大数据不眠夜&#xf…...

佳木斯市郊区建设局网站/我要推广网

本期我们继续进行运筹学之图与网络分析算法的讲解&#xff0c;我们将对图与网络分析的基础知识进行一个简单的回顾&#xff0c;并介绍求解最大流问题和最小费用最大流的MATLAB和Python相关代码&#xff0c;以帮助大家利用工具快速求解最大流问题和最小费用最大流问题&#xff0…...