蓝桥杯 嵌入式 小结
一、BSP模版
1. Key
按键扫描模版,需要注意的是 key_val 。
uint8_t Key_Scan(void)
{uint8_t key_val=0;if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET){key_val=1;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET){key_val=2;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET){key_val=3;}if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET){key_val=4;}return key_val;}
三行按键模版
ucKey_Val = Key_Scan();
unKey_Down = ucKey_Val & (ucKey_Old ^ ucKey_Val);
ucKey_Up = ~ucKey_Val & (ucKey_Old ^ ucKey_Val);
ucKey_Old = ucKey_Val;
2. Led
led扫描模版
void LED_Disp(uint8_t ucLed)
{//**将所有的灯熄灭HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);//根据ucLed的数值点亮相应的灯HAL_GPIO_WritePin(GPIOC, ucLed<<8, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET); }
3. I2c
这部分,最好先懂原理,再多敲敲就记住了。
写模版
void iic_24c02_write(uint8_t* pucBuf, uint8_t ucAddr, uint8_t ucNum)
{I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(ucAddr);I2CWaitAck();while(ucNum--){I2CSendByte(*pucBuf++);I2CWaitAck();}I2CStop();HAL_Delay(500);
}
读模版
void iic_24c02_read(uint8_t* pucBuf, uint8_t ucAddr, uint8_t ucNum)
{I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(ucAddr);I2CWaitAck();I2CStart();I2CSendByte(0xa1);I2CWaitAck();while(ucNum--){*pucBuf++=I2CReceiveByte();if(ucNum)I2CSendAck();elseI2CSendNotAck();}I2CStop();
}
4. ADC
uint16_t getADC1(void)
{uint16_t adc = 0;HAL_ADC_Start(&hadc1);adc = HAL_ADC_GetValue(&hadc1);return adc;
}
二、LED点灯
每一届都是有点灯的,也就是必考。
1. 点亮和熄灭
ucled |= 0x01;
ucled &= ~0x01;
2. 闪烁灯
num 是哪个灯。
ucLed ^= 0x01 << (num-1);
3. 流水灯
第八届有考到流水灯。
uint8_t Flow = 0x10;//流水的变量//高4位的流水灯
void UpdateFlowLED(Direction dir) {ucLed &= 0x0F;ucLed |= Flow;if (dir == DIR_UP) {Flow = (Flow >> 1);if(Flow == 0x08)Flow = 0x80;} else {Flow = (Flow << 1);if(Flow == 0x00)Flow = 0x10;}LED_Disp(ucLed);
}
三、串口
第12届考到最难的串口题,好好吃透。第6届也好好复习。
1. 串口接收中断开启
主函数部分:
UART1_Init();
HAL_UART_Receive_IT(&huart1, (uint8_t *)(&rx_buffer), 1);
2. 传输
传输 str 前,记得先用 sprintf 格式化字符串。
HAL_UART_Transmit(&huart1,(unsigned char *)str_str, strlen(str_str), 50);
3. 回调
在串口接收中断触发时自动调用,我们只用重写回调函数即可。
//串口接收中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{RX_BUF[Rx_Counter] = rx_buffer;Rx_Counter++;HAL_UART_Receive_IT(&huart1, (uint8_t *)(&rx_buffer), 1);
}
3. 接收字符
串口通信,可能用到的 C库函数:strcmp 和 strcpy,一个比较,一个赋值。
字符换算数字:RX_BUF[i] - '0'
清空缓冲区:memset(&RX_BUF[0], 0, sizof(RX_BUF))
四、PWM输出
PA6和PA7分别配置定时器3和定时器17,当然具体引脚具体配置,像13届PA1配置定时器2。
PWM_OUTPUT_TIM3_Init();
PWM_OUTPUT_TIM17_Init();
1. 频率和占空比
//80M/(80*10K)=100
__HAL_TIM_SET_AUTORELOAD(&htim3, 9999);
// 80M/(80*5K) =200
__HAL_TIM_SET_AUTORELOAD(&htim17, 4999);//1000/10000=10%
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 1000);
//500/5000=10%
__HAL_TIM_SET_COMPARE(&htim17, TIM_CHANNEL_1, 500);
2. 持续高低电平
第11、12届考到。
占空比到 100% 和 0%即可
__HAL_TIM_SET_COMPARE(&htim17,TIM_CHANNEL_1, 0);//强制配置成低电平
3. 与ADC的关系
第11、14届考到 ADC 和占空比的关系。
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (unsigned int)(10000*((R37_Volt)/3.3)));
__HAL_TIM_SET_COMPARE(&htim17, TIM_CHANNEL_1, (unsigned int)(5000*((R37_Volt)/3.3)));
五、脉冲捕获
第 14、15届真题考到
1. 输入捕获启动
选定 定时器2的通道1
F_TEST_TIM3_Init();//*输入捕获PWM启动
HAL_TIM_Base_Start(&htim3); /* 启动定时器 */
HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_2);
2. 捕获中断回调
14和15届考的是捕获的频率,占空比还没考。
HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1) 写主函数就行。
捕获频率
//输入捕获PWM中断回调
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==TIM3){cap2 = HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1);TIM3->CNT=0;R39_frq = 80000000/80/cap2;HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);}
}
捕获占空比
(下降沿-上升沿1) / (上升沿2- 上升沿1),在代码中就是 下降捕获/上升捕获
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==TIM2){if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_1){cap1 = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1);cap1_2 = HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_2);TIM2->CNT=0;R40_frq = 80000000/80/cap1;R40_duty= (1.0*cap1_2)/(1.0*cap1)*100;HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);}}
}
六、按键
1. 界面切换
typedef enum{Data=0,Para=1
} Display_state;
Display_state state = Data;if(key_down == 1)state^= 1
2. 按键循环
if(key_down == 2):if(++num == 4):num = 0
3. 数值边界
这部分自己好好注意计算。
4. 长按
第9届考到,好好复习。
Key_down用来重写计时,Key_up判断短按,Key_val 判断长按。
要长按快速递增,就在嵌套一层计时。
if(key_down):uwTick_j = uwTick if ((uwTick - uwTick_j) < 800):switch key_up:case 1:#切换存储位置if (++Storage_Num == 6) :Storage_Num = 1breakcase 2:#Standby 状态下,进入 Setting 状态if(state == Standby):state = Settingbreak#Setting 状态下,时分秒切换(显示高亮)if(state == Setting):if(++time_mod == 3)time_mod == hour_timebreakcase 3:B3_ctrl()breakcase 4:if(state == Standby || state == Setting):Sec_total == Hour_Min_Sec[0]*3600 + Hour_Min_Sec[1]*60 + Hour_Min_Sec[2]# 开启计数器的 Sec_total 的逻辑可以放在 LCD 代码模块中'''if(state == Running):delay(1000)if(Sec_total > 0):Sec_total-- '''state = Runningelse if (state == Running):state = Pauseelse if (state == Pause):state = Runningbreakelse:switch key_val:case 2:#设置的时间存储到当前位置,并退出 Setting,进入 Standbyif(state == Setting):i2c_write(Sec_total, Storage_Num)state == Standbybreakcase 3:# 数字快速增加1if(( uwTick - uwTick_speed)>100):uwTick_speed = uwTickB3_ctrl()breakcase 4:#在 Running 和 Pause 状态下取消定时器,进入 Standbyif(state == Running || state == Pause):state == Standbybreakvoid B3_ctrl():switch time_mod:case Setting_Hour:# 写 if 也可以,这边用 % 更简洁Hour_Min_Sec[0] = (Hour_Min_Sec[0] + 1) % 24breakcase Setting_Minute:Hour_Min_Sec[1] = (Hour_Min_Sec[1] + 1) % 24breakcase Setting_Second:Hour_Min_Sec[2] = (Hour_Min_Sec[2] + 1) % 24break
七、LCD
1. 前景和后景
LCD_SetBackColor(White);
LCD_SetTextColor(White);
2. 行高亮
第十届考到
sprintf((char*) Lcd_Str_Disp, "Max Volt: %3.2f", (float)Save_Volt_Max_Min_Led[0]/10.0);
if(choose_pama == 1) LCD_SetBackColor(Green);
LCD_DisplayStringLine(Line1, Lcd_Str_Disp);
LCD_SetBackColor(White);sprintf((char*) Lcd_Str_Disp, "Min Volt: %3.2f", (float)Save_Volt_Max_Min_Led[1]/10.0);
if(choose_pama == 2) LCD_SetBackColor(Blue);
LCD_DisplayStringLine(Line2, Lcd_Str_Disp);
LCD_SetBackColor(White);sprintf((char*) Lcd_Str_Disp, "Upper:LD%1d", (uint8_t)Save_Volt_Max_Min_Led[2]);
if(choose_pama == 3) LCD_SetBackColor(Blue);
LCD_DisplayStringLine(Line3, Lcd_Str_Disp);
LCD_SetBackColor(White);sprintf((char*) Lcd_Str_Disp, "Lower:LD%1d", (uint8_t)Save_Volt_Max_Min_Led[3]);
if(choose_pama == 4) LCD_SetBackColor(Blue);
LCD_DisplayStringLine(Line4, Lcd_Str_Disp);
LCD_SetBackColor(White);
3. 字符闪烁
第六届考RTC时,修改时间,要求字符闪烁。
if((uwTick - uwTick_SETTING_TIME_Set_Point)>=500){uwTick_SETTING_TIME_Set_Point = uwTick;SETTING_TIME_Ctrl ^= 0x1;}if(SETTING_TIME_Ctrl == 0x1) //控制闪烁,时间设置的时候闪烁{if(Interface_Num == 0x10) //设置时{Lcd_Disp_String[6] = ' ';Lcd_Disp_String[7] = ' ';}else if(Interface_Num == 0x11) //设置分{Lcd_Disp_String[9] = ' ';Lcd_Disp_String[10] = ' ';}else if(Interface_Num == 0x12) //设置秒{Lcd_Disp_String[12] = ' ';Lcd_Disp_String[13] = ' ';}}LCD_DisplayStringLine(Line5, Lcd_Disp_String);
八、RTC
好像就第6、8届考了。
750k/125=6k
RTC_TimeTypeDef H_M_S_Time;
RTC_DateTypeDef Y_M_D_Date;HAL_RTC_GetTime(&hrtc,&time,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&date,RTC_FORMAT_BIN);
相关文章:
蓝桥杯 嵌入式 小结
一、BSP模版 1. Key 按键扫描模版,需要注意的是 key_val 。 uint8_t Key_Scan(void) {uint8_t key_val0;if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)GPIO_PIN_RESET){key_val1;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)GPIO_PIN_RESET){key_val2;}if(HAL_GPIO_ReadPin(…...
【音视频】SDL渲染YUV格式像素
SDL视频显示的流程 实现流程 准备视频文件 准备一个格式为yuv420p,分辨率为320x240的yuv数据,并且将视频文件放入项目构建的目录下: 初始化SDL 初始化SDL的视频模块 //初始化 SDL if(SDL_Init(SDL_INIT_VIDEO)) {fprintf( stderr, "…...
ThingsBoard3.9.1 MQTT Topic(1)
1.网关转发子设备的遥测信息, Topic:v1/gateway/telemetry { "m1": [{ "mode": "CW", "temperature": 23 }], "m2": [{ "mode": "CW", "temperature": 23 }] } 说明:json格式&a…...
如何查看自己抖音的IP属地?详细教程+常见问题解答
在当今互联网时代,IP属地信息已成为各大社交平台(如抖音、微博、快手等)展示用户真实网络位置的重要功能。无论是出于隐私保护、账号安全,还是单纯好奇自己的IP归属地,了解如何查看抖音IP属地都很有必要。 本文将详细介…...
李宏毅NLP-2-语音识别part1
语音识别part1 这是一篇名为 “Speech Recognition is Difficult?”(语音识别很难吗? )的文章。作者是 J.R. Pierce,来自贝尔电话实验室(Bell Telephone Laboratories, Inc.) 。文中提到语音识别虽有吸引力…...
AUTOSAR图解==>AUTOSAR_SWS_MemoryMapping
AUTOSAR 内存映射机制详解 深入解析AUTOSAR标准中的内存映射技术 目录 AUTOSAR 内存映射机制详解 目录1. 概述2. 内存映射架构 2.1 架构组成2.2 映射类型2.3 关键组件3. 配置数据模型 3.1 主要配置容器3.2 内存段类型3.3 初始化策略4. 映射使用流程 4.1 配置阶段4.2 开发阶段...
探索 HTML5 新特性:提升网页开发的现代体验
在 Web 开发的演进历程中,HTML5 无疑是一座重要的里程碑。它不仅为网页带来了更丰富的功能,还提升了开发效率与用户体验。本文将深入探讨 HTML5 那些令人瞩目的新特性,助你紧跟现代 Web 开发潮流。 一、语义化标签:让结构更清晰 …...
系统设计思维的讨论
我们经常说自己熟悉了spring,能够搭建起一个项目基本框架,并且在此之上进行开发,用户or客户提出需求碰到不会的百度找找就可以实现。干个四五年下一份工作就去面试架构师了,运气好一些可能在中小公司真的找到一份架构师、技术负责…...
【音视频】SDL播放PCM音频
相关API 打开音频设备 int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, SDL_AudioSpec * obtained); desired:期望的参数。obtained:实际音频设备的参数,一般情况下设置为NULL即可。 SDL_AudioSpec typedef struct SDL_AudioSpec { i…...
FATFS文件系统配置
1、FatFs模块功能配置选项参考ffconf.h函数配置链接:FatFs模块功能配置选项 2、FATFS配置 FATFS 支持长文件名链接: FATFS:配置 FATFS 支持长文件名 3、 FATFS移植链接1 4、 FATFS移植链接2 5、FAT32 和 FATFS 是两个不同层次的概念,分别属于…...
JVM 字节码是如何存储信息的?
JVM 字节码是 Java 虚拟机 (JVM) 执行的指令集,它是一种与平台无关的二进制格式,在任何支持 JVM 的平台上都可运行的Java 程序。 字节码存储信息的方式,主要通过以下几个关键组成部分和机制来实现: 1. 指令 (Opcodes) 和 操作数 …...
Linux:多路转接(上)——select
目录 一、select接口 1.认识select系统调用 2.对各个参数的认识 二、编写select服务器 一、select接口 1.认识select系统调用 int select(int nfds, fd_set readfds, fd_set writefds, fd_set exceptfds, struct timeval* timeout); 头文件:sys/time.h、sys/ty…...
如何解决DDoS攻击问题 ?—专业解决方案深度分析
本文深入解析DDoS攻击面临的挑战与解决策略,提供了一系列防御技术和实践建议,帮助企业加强其网络安全架构,有效防御DDoS攻击。从攻击的识别、防范措施到应急响应,为网络安全工作者提供了详细的操作指引。 DDoS攻击概览:…...
机器学习Python实战-第三章-分类问题-3.决策树算法
目录 3.3.1 原理简介 3.3.2 算法步骤 3.3.3 实战 3.3.4 实验 前半部分是理论介绍,后半部分是代码实践,可以选择性阅读。 决策树(decision tree)是功能强大而且相当受欢迎的分类和预估方法&…...
Spring三级缓存学习
Spring的三级缓存机制主要用于解决单例Bean的循环依赖问题。其核心在于提前暴露Bean的引用,允许未完全初始化的对象被其他Bean引用。以下是三级缓存的详细说明及其解决循环依赖的原理: 三级缓存结构 一级缓存(singletonObjects) 存…...
欧拉函数φ
函数作用 计算 1 1 1 ~ n n n中有多少个与 n n n互质的数。 函数公式 φ ( n ) n p 1 − 1 p 1 p 2 − 1 p 2 … … p m − 1 p m φ(n)n\times\frac{p_1-1}{p_1}\times\frac{p_2-1}{p_2}\times……\times\frac{p_m-1}{p_m} φ(n)np1p1−1p2p2−1……pmp…...
蓝桥杯刷题指南
蓝桥杯是中国普及性最好的计算机程序设计竞赛之一,参加者包括大学生、高中生和草根程序员等各个群体。通过刷题来提升自己的编程能力是参加蓝桥杯比赛的常见做法。下面是一些蓝桥杯常见的题型和刷题技巧,希望对大家有所帮助。 基础入门题目:…...
ctfshow WEB web12
发现只有这样一句话,应该是要看页面源代码的,右键查看页面源代码 发现可能存在代码执行漏洞,拼接一个?cmdphpinfo(); 成功显示出php信息, 说明存在代码执行漏洞 接下来遍历目录,我们要用到一个函数 glob() glob() 函数可以查找…...
ChromeOS 135 版本更新
ChromeOS 135 版本更新 一、ChromeOS 135 更新内容 1. ChromeOS 电池寿命优化策略 为了延长 Chromebook 的使用寿命,ChromeOS 135 引入了一项全新的电池充电限制策略 —— DevicePowerBatteryChargingOptimization,可提供更多充电优化选项,…...
redis的缓存
redis的缓存 一.缓存简介1.缓存2.redis作为数据库(MySQL)缓存的原因 二.缓存更新策略1.定期生成2.实时生成3.内存淘汰策略1)FIFO(First In First Out) 先进先出2)LRU(Least Recently Used)淘汰最久未使用的3)LFU(Least…...
字符串与相应函数(上)
字符串处理函数分类 求字符串长度:strlen长度不受限制的字符串函数:strcpy,strcat,strcmp长度受限制的字符串函数:strncpy,strncat,strncmp字符串查找:strstr,strtok错误信息报告:strerror字符操作,内存操作函数&…...
【微知】Mellanox网卡网线插入后驱动的几个日志?(Cable plugged;IPv6 ... link becomes ready)
概要 本文是一个简单的信息记录。记录的是当服务器网卡的光模块插入后内核的日志打印。通过这种日志打印,可以在定位分析问题的时候,知道进行过一次模块插拔。 日志 截图版: 文字版: [32704.121294] mlx5_core 0000:01:00.0…...
spring security oauth2.0的四种模式
OAuth 2.0 定义了 4 种授权模式(Grant Type),用于不同场景下的令牌获取。以下是每种模式的详细说明、适用场景和对比: 一、授权码模式(Authorization Code Grant) 适用场景 • Web 应用(有后端…...
MyBatis-Plus 核心功能
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、条件构造器1、核心 Wrapper 类型基础查询示例SQL 查询使用 QueryWrapper 实现查询 更新操作示例场景一:基础更新SQL 查询使用 QueryWrapper 实现更新…...
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink版产品体验测评 什么是阿里云实时计算Flink应用场景实时计算Flink&自建Flink集群性价比开发效率运维管理企业安全 场景落地 什么是阿里云实时计算Flink 实时计算Flink大家可能并不陌生,在实时数据处理上,可能会有所接触…...
少儿编程 scratch四级真题 2025年3月电子学会图形化编程等级考试Scratch四级真题解析(判断题)
2025年3月scratch编程等级考试四级真题 判断题(共10题,每题2分,共20分) 11、小圆点角色的程序如下左图所示,程序运行后的效果如下右图所示,自制积木中又调用了自己,这种算法叫做递归。 答案&a…...
【连载3】基础智能体的进展与挑战综述
基础智能体的进展与挑战综述 从类脑智能到具备可进化性、协作性和安全性的系统 【翻译团队】刘军(liujunbupt.edu.cn) 钱雨欣玥 冯梓哲 李正博 李冠谕 朱宇晗 张霄天 孙大壮 黄若溪 2. 认知 人类认知是一种复杂的信息处理系统,它通过多个专门的神经回路协调运行…...
Schaefer 400图谱
图谱下载: https://github.com/ThomasYeoLab/CBIG/tree/master/stable_projects/brain_parcellation/Schaefer2018_LocalGlobal/Parcellations/MNI 图 (第一行)显示了 Yeo et al. (2011) 的 7 网络和 17 网络分包。图…...
通过uri获取文件路径手机适配
青铜版本 return contentResolver.query(this, arrayOf(MediaStore.MediaColumns.DATA), null, null).let {if (it?.moveToFirst() true) {val columnIndex it.getColumnIndex(MediaStore.MediaColumns.DATA)val path it.getString(columnIndex)it.close()return path}&quo…...
Ubuntu 22.04 完美安装 ABAQUS 教程:从零到上手,解决兼容问题
教程概述与安装准备 本教程详细介绍了在 Ubuntu 22.04 系统上安装 ABAQUS 2023 及 ifort 2021 的步骤,并实现用户子程序的链接。教程同样适用于 ABAQUS 2021(需相应调整文件名和路径)以及 Ubuntu 18.04 至 22.04 系统,尽管未在所有版本上测试。需要注意的是,Intel 的 One…...
雷池WAF防火墙如何构筑DDoS防护矩阵?——解读智能语义解析对抗新型流量攻击
本文深度解析雷池WAF防火墙在DDoS攻防中的技术突破,通过智能语义解析、动态基线建模、协同防护体系三大核心技术,实现从流量特征识别到攻击意图预判的进化。结合2023年金融行业混合攻击防御案例,揭示新一代WAF如何通过协议级漏洞预判与AI行为…...
Linux权限理解
1.shell命令以及运行原理 下面来介绍一个话题,关于指令的运行原理,这里先简单理解就可以。当我们登上Linux后: yxx这里称之为用户名,VM-8-2-centos是主机名,~是当前目录,$是命令行提示符。 其中我们把上面的…...
使用labelme进行实例分割标注
前言 最近在学习实例分割算法,参考b站视频课教程,使用labelme标注数据集,在csdn找到相关教程进行数据集格式转换,按照相关目标检测网络对数据集格式的训练要求划分数据集。 1.使用labelme标注图片 在网上随便找了几张蘑菇图片&am…...
策略模式实现 Bean 注入时怎么知道具体注入的是哪个 Bean?
Autowire Resource 的区别 1.来源不同:其中 Autowire 是 Spring2.5 定义的注解,而 Resource 是 Java 定义的注解 2.依赖查找的顺序不同: 依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当…...
PromptUp 网站介绍:AI助力,轻松创作
1. 网站定位与核心功能 promptup.net 可能是一个面向 创作者、设计师、营销人员及艺术爱好者 的AI辅助创作平台,主打 零门槛、智能化的内容生成与优化。其核心功能可能包括: AI艺术创作:通过输入关键词、选择主题或拖放模板,快速生成风格多样的数字艺术作品(如插画、海报…...
软件架构评估利器:质量效用树全解析
质量效用树是软件架构评估中的一种重要工具,它有助于系统地分析和评估软件架构在满足各种质量属性方面的表现。以下是关于质量效用树的详细介绍: 一、定义与作用 质量效用树是一种以树形结构来表示软件质量属性及其相关效用的模型。它将软件的质量目标…...
XILINX DDR3专题---(1)IP核时钟框架介绍
1.什么是Reference Clock,这个时钟一定是200MHz吗? 2.为什么APP_DATA是128bit,怎么算出来的? 3.APP :MEM的比值一定是1:4吗? 4.NO BUFFER是什么意思? 5.什么情况下Reference Clock的时钟源可…...
ubuntu 2204 安装 vcs 2018
安装评估 系统 : Ubuntu 22.04.1 LTS 磁盘 : ubuntu 自身占用了 9.9G , 按照如下步骤 安装后 , 安装后的软件 占用 13.1G 仓库 : 由于安装 libpng12-0 , 添加了一个仓库 安装包 : 安装了多个包(lsb及其依赖包 libpng12-0)安装步骤 参考 ubuntu2018 安装 vcs2018 安装该…...
Python与去中心化存储:从理论到实战的全景指南【无标题】
Python与去中心化存储:从理论到实战的全景指南 随着区块链技术和Web3理念的兴起,去中心化存储逐渐成为构建新型互联网的核心模块之一。传统中心化存储的模式存在易被攻击、单点故障和高昂成本等问题,而去中心化存储通过分布式架构实现了更高的安全性、可靠性和数据透明度。…...
C++语言程序设计——01 C++程序基本结构
目录 编程语言一、C程序执行过程二、C基础框架三、输出语句cout换行 四、注释方法 编程语言 我们知道c是一门编程语言,它是在c语言的基础上发展而来,添加了类、对象、继承、多态等概念,我们可以称为它是一种面向对象编程的语言。 不过在学习…...
Unity UI中的Pixels Per Unit
Pixels Per Unit在图片导入到Unity的时候,将图片格式设置为Sprite的情况下会出现,其意思是精灵中的多少像素对应世界中的一个单位,默认是100 1. 对于在世界坐标中 在世界坐标中,一般对于Sprite的应用是Sprite Renderer组件 使…...
(十八)安卓开发中的后端接口调用详讲解
在安卓开发中,后端接口调用是连接移动应用与服务器的重要环节,用于实现数据的获取、提交和处理。本文将详细讲解安卓开发中后端接口调用的步骤,结合代码示例和具体的使用场景,帮助你全面理解这一过程。 什么是后端接口?…...
使用freebsd-update 升级FreeBSD从FreeBSD 14.1-RELEASE-p5到FreeBSD 14.2-RELEASE
使用freebsd-update 升级FreeBSD从FreeBSD 14.1-RELEASE-p5到FreeBSD 14.2-RELEASE 先升级小版本 准备升级前,先把当前的小版本升级到顶,比如现在是FreeBSD 14.1-RELEASE-p5,先升级到最新的14.1版本,使用命令: # fr…...
基础排序算法(三傻排序)
1. 选择排序 原理:每次从未排序部分选出最小(或最大)元素,放到已排序部分的末尾。时间复杂度:O(n),效率低但实现简单,适合小规模数据。 //选择排序public static void selectSort(int[] arr){i…...
五分钟了解智能体
在2025年人工智能技术全面渗透社会的背景下,“智能体”(Agent)已成为推动第四次工业革命的核心概念之一。从自动驾驶汽车到医疗诊断系统,从智能家居中枢到金融量化交易平台,智能体正在重构人类与技术交互的方式。本文将…...
【机器学习】笔记| 通俗易懂讲解:生成模型和判别模型|01
博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾:【科研小白系列】这些基础linux命令,你都掌握了嘛?每日一言🌼: “脑袋想不明白的,就用脚想”—…...
Jieba分词的原理及应用(三)
前言 “结巴”中文分词:做最好的 Python 中文分词组件 上一篇文章讲了使用TF-IDF分类器范式进行企业级文本分类的案例。其中提到了中文场景不比英文场景,在喂给模型之前需要进行分词操作。 分词的手段有很多,其中最常用的手段还是Jieba库进行…...
神经网络背后的数学原理
神经网络背后的数学原理 数学建模神经网络数学原理 数学建模 标题民科味道满满。其实这篇小短文就是自我娱乐。 物理世界是物种多样,千姿百态。可以从不同的看待眼中的世界,包括音乐、绘画、舞蹈、雕塑等各种艺术形式。但这些主观的呈现虽然在各人眼中…...
常用图像滤波及色彩调节操作(Opencv)
1. 常用滤波/模糊操作 import cv2 import numpy as np import matplotlib.pyplot as plotimg cv2.imread("tmp.jpg") img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_g cv2.GaussianBlur(img, (7,7), 0) img_mb cv2.medianBlur(img, ksize7) #中指滤波 img_bm …...
FFMPEG和opencv的编译
首先 sudo apt-get update -qq && sudo apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-de…...