每个组织内部事件的平均年度成本达到1620万美元

新的研究报告显示,2023年内部风险事件成本上升40%,非恶意内部人员占比高但恶意行为代价更大。企业对内部威胁的认识增强,计划增加投资以改善管理,AI和ML技术被视为关键工具。

DTEX和波耐蒙研究所(Ponemon Institute)最新的内部风险成本报告显示,到2023年,每个组织的内部风险事件平均年成本已从2022年的1540万美元上升至1620万美元。这意味着在过去4年里增长了40%。

研究还发现,内部事件的数量从去年的6803起增加到7343起。与2022年相比,2023年控制事件所需的平均天数保持相似,分别为86天和85天。遏制和补救是最昂贵的活动中心,每起事件分别为179209美元和125221美元。

不出所料,企业对内部事件的响应时间越长,成本就会显著上升。Ponemon和DTEX发现,花费91天以上来控制此类事件的企业每年面临的成本超过1833万美元。

该研究确定了两类内幕风险行为者。非恶意的内部人员并不寻求造成伤害,而是通过疏忽、错误或被恶意行为者欺骗来造成伤害。

相反,恶意的内部人员确实寻求忽视损害,从事诸如知识产权盗窃、未经授权的披露、破坏和欺诈等活动。

该报告对1075名安全和IT专业人士进行了调查,结果显示,非恶意内部人员占攻击事件的75%。这是由疏忽或错误造成的(55%),平均成本为505113美元。或者被外部行为者欺骗(20%)。

虽然恶意内部威胁仅占攻击事件的四分之一,但应对这些事件的成本要高得多,平均每起事件要花费企业70.15万美元。

尽管内部风险带来了巨大的威胁,但88%的受访组织在这方面投入的IT安全预算不到10%,平均为8.2%。剩余的预算用于应对外部威胁。

事实上,只有6%的组织表示IT安全部门负责内部风险管理,而最常见的负责部门是法律部门(34%)。

令人鼓舞的是,安全专业人士似乎意识到了这种不平衡,58%的受访者认为目前的内部威胁管理水平是不够的,近一半(46%)的组织计划在2024年增加对内部风险项目的投资。

超过四分之三(77%)的受访者表示,他们已经启动或计划启动内部风险计划。此外,近三分之二(64%)的受访者表示,他们认为人工智能和机器学习技术在主动检测内部威胁方面至关重要或非常重要。

DTEX Systems首席技术官Rajan Koo评论道:“我们很受鼓舞的是,组织计划增加对内部风险项目的投资,因为这是客户和新行业法规的要求,而不仅仅是因为以前的事件。这是一个重大的变化,预示着长期以来的关注和优先考虑。”

<think>根据用户的问题,用户需要获取TM1620数码管的完整驱动代码。结合引用内容,特别是引用[3]中提供了初始化函数的示例,但用户需要完整的驱动代码。因此,我将基于引用[1]和引用[3]提供的信息,编写一个完整的驱动代码。 注意:由于引用[1]提到驱动代码是通用的,适用于TM1616、TM1618、TM1620,因此我们可以参考其设计思路。同时,引用[3]提供了初始化函数的示例,我们可以在此基础上扩展其他必要的函数,如写字节函数、设置显示内容函数等。 下面将编写一个完整的TM1620驱动代码,包括以下部分: 1. 宏定义:定义与硬件连接相关的引脚(CLK, DIO, STB)以及命令字。 2. 初始化函数:初始化TM1620,设置显示模式、地址自动增加、清除显示寄存器、设置亮度等。 3. 写字节函数:向TM1620写入一个字节的数据。 4. 设置显示内容函数:设置指定地址的显示数据。 5. 设置亮度函数:调整显示亮度。 由于硬件连接不同,用户需要根据实际使用的STM32引脚修改宏定义部分。 以下是完整的驱动代码(基于STM32 HAL库):</think>以下是基于STM32的TM1620数码管完整驱动代码,整合了初始化、数据写入、显示控制等核心功能: ```c #include "stm32f1xx_hal.h" // 硬件引脚配置 (根据实际电路修改) #define TM1620_CLK_GPIO_Port GPIOB #define TM1620_CLK_Pin GPIO_PIN_0 #define TM1620_DIO_GPIO_Port GPIOB #define TM1620_DIO_Pin GPIO_PIN_1 #define TM1620_STB_GPIO_Port GPIOB #define TM1620_STB_Pin GPIO_PIN_2 // 命令定义 (参考TM1620手册) #define CMD_DISPLAY_ON 0x88 // 显示开 + 亮度(0-7) #define CMD_DATA_WRITE 0x40 // 数据写入模式 #define CMD_ADDR_AUTO_INC 0x40 // 地址自动增加 #define CMD_FIXED_ADDR 0x44 // 固定地址模式 #define GRID_ADDR_BASE 0xC0 // 网格地址起始 // 延时函数 (适配主频) static void TM1620_Delay(uint32_t us) { uint32_t ticks = us * (SystemCoreClock / 1000000) / 8; while(ticks--); } // 写一个字节到TM1620 void TM1620_Write_Byte(uint8_t data) { HAL_GPIO_WritePin(TM1620_STB_GPIO_Port, TM1620_STB_Pin, GPIO_PIN_RESET); TM1620_Delay(5); for(uint8_t i = 0; i < 8; i++) { HAL_GPIO_WritePin(TM1620_CLK_GPIO_Port, TM1620_CLK_Pin, GPIO_PIN_RESET); TM1620_Delay(2); // 设置数据位 HAL_GPIO_WritePin(TM1620_DIO_GPIO_Port, TM1620_DIO_Pin, (data & 0x01) ? GPIO_PIN_SET : GPIO_PIN_RESET); TM1620_Delay(2); HAL_GPIO_WritePin(TM1620_CLK_GPIO_Port, TM1620_CLK_Pin, GPIO_PIN_SET); TM1620_Delay(2); data >>= 1; } } // TM1620初始化 void TM1620_Init(uint8_t brightness) { // 确保亮度值在0-7范围内 brightness = (brightness > 7) ? 7 : brightness; // 1. 设置显示模式(6网格 x 8段) TM1620_Write_Byte(CMD_DATA_WRITE | CMD_ADDR_AUTO_INC); HAL_GPIO_WritePin(TM1620_STB_GPIO_Port, TM1620_STB_Pin, GPIO_PIN_SET); TM1620_Delay(5); // 2. 清除显示寄存器 TM1620_Write_Byte(GRID_ADDR_BASE); // 起始地址 for(uint8_t i = 0; i < 6; i++) { // 6个网格 TM1620_Write_Byte(0x00); // 清空显示 } HAL_GPIO_WritePin(TM1620_STB_GPIO_Port, TM1620_STB_Pin, GPIO_PIN_SET); TM1620_Delay(5); // 3. 设置亮度并开启显示 TM1620_Write_Byte(CMD_DISPLAY_ON | brightness); HAL_GPIO_WritePin(TM1620_STB_GPIO_Port, TM1620_STB_Pin, GPIO_PIN_SET); TM1620_Delay(5); } // 显示数字到指定位置 void TM1620_Display_Digit(uint8_t pos, uint8_t digit, uint8_t dot) { // 数码管段码表 (共阴极) const uint8_t digit_table[] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; if(pos > 5) return; // 位置范围0-5 if(digit > 9) digit = 0; uint8_t seg_data = digit_table[digit]; if(dot) seg_data |= 0x80; // 添加小数点 TM1620_Write_Byte(CMD_DATA_WRITE | CMD_FIXED_ADDR); TM1620_Write_Byte(GRID_ADDR_BASE + pos * 2); // 计算网格地址 TM1620_Write_Byte(seg_data); // 写入段数据 HAL_GPIO_WritePin(TM1620_STB_GPIO_Port, TM1620_STB_Pin, GPIO_PIN_SET); } // 显示字符串 (支持0-9和.) void TM1620_Display_String(const char* str) { for(uint8_t i = 0; i < 6 && *str; i++) { uint8_t dot = 0; if(*(str+1) == '.') { dot = 1; str++; // 跳过小数点字符 } if(*str >= '0' && *str <= '9') { TM1620_Display_Digit(i, *str - '0', dot); } str++; } } ``` ### 使用说明 1. **硬件连接**: - CLK/DIO/STB引脚连接STM32的GPIO - 数码管段线接TM1620的SEG脚,位线接GRID脚 - 注意VDD供电(通常3.3V-5V) 2. **初始化示例**: ```c // 主函数中调用 int main(void) { HAL_Init(); SystemClock_Config(); TM1620_Init(3); // 初始化并设置亮度级别3 TM1620_Display_String("12.345"); // 显示内容 while(1); } ``` 3. **关键API**: - `TM1620_Init(brightness)`:初始化芯片,亮度范围0-7 - `TM1620_Display_Digit(pos, digit, dot)`:指定位置显示数字 - `TM1620_Display_String(str)`:显示字符串(自动解析小数点) > 完整工程需包含:`tm1620.c`/`tm1620.h`文件,在STM32CubeIDE/Keil中集成[^1][^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值