【CubeMX-HAL库】STM32F407—无刷电机学习笔记

目录

简介:

学习资料:

跳转目录:

一、工程创建

二、板载LED

三、用户按键

四、蜂鸣器

1.完整IO控制代码

五、TFT彩屏驱动

六、ADC多通道

1.通道确认

2.CubeMX配置

①开启对应的ADC通道

②选择规则组通道 

 ③开启DMA

④开启ADC中断

 3.KEIL配置

①内部温度传感器

②NTC热敏电阻

查表法计算NTC温度

公式法计算NTC温度

实际效果

③INA240A2电流传感器 

 4.完整ADC代码

①BSP_ADC.c

②BSP_ADC.h

七、SPI_NOR FLASH

八、SDIO_SD卡 

九、I2C_AS5600编码器

1.Cube MX配置

2.KEIL配置

①AS5600.c

②AS5600.h

3.演示效果


简介:

本系列使用硬件:

1.核心板:【立创·天空星STM32F407VxT6】开发板

2.控制板:STM32天空星_无刷电机拓展板

3.电机:1806无刷云台电机

学习资料:

立创天空星STM32开发板资料

DENGFOC文档

LVGL官网

百问网-LVGL中文开发手册

跳转目录:

【CubeMX-HAL库】STM32F407—无刷电机学习笔记

【CubeMX-HAL库】STM32F407—无刷电机基础知识

【CubeMX-HAL库】STM32F407—无刷电机开环控制

【CubeMX-HAL库】STM32F407—无刷电机闭环控制

【CubeMX-HAL库】STM32F407—无刷电机电流闭环控制

【CubeMX-HAL库】STM32F407—无刷电机SVPWM控制

【CubeMX-HAL库】软件、硬件SPI+DMA驱动TFT彩屏(LVGL)

后续继续补充......

其他笔记跳转链接:【CubeMX-HAL库】STM32H743—学习笔记

一、工程创建

本实验通过Cube MX配置使用Keil5编写程序代码。

①打开Cube MX创建新工程,在搜索框输入STM32F407ZET6选择对应芯片。

②在系统核心配置中选择RCC->打开外部时钟源HSE和LSE。

③在DEBUG栏中使能SW引脚。

④将时钟频率设置为168MHz。

⑤设置文件路径及工程名,配置生成Keil-MDK文件。

⑥ 选择复制必要的文件,并且’.c/.h‘独立分开后点击"GENERATE CODE"生成代码。

⑦打开生成的Keil工程,可以先将编码设置为UTF-8格式(LVGL中字库大部分为UTF-8编码,防止之后乱码),进入魔术棒勾选使用LIB库,选择对应的下载器并勾复位并运行,然后编译工程,顺便将部件框都拖到习惯的位置,编译成功后即可下载程序。

二、板载LED

通过原理图可知核心板上LED接在PB2引脚,高电平点亮。

#define LED_OFF HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET)
#define LED_ON  HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET)
#define LED     HAL_GPIO_ReadPin(LED_GPIO_Port,LED_Pin)
#define LED_TOG HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin)

三、用户按键

由原理图可知,按键为PA0,拨动开关引脚分别为PD8,PD9,PD14。

 CubeMX设置对应IO,并配置相应上拉下拉。

#define KEY_R  HAL_GPIO_ReadPin(KEY_R_GPIO_Port,KEY_R_Pin)
#define KEY_D  HAL_GPIO_ReadPin(KEY_D_GPIO_Port,KEY_D_Pin)
#define KEY_L  HAL_GPIO_ReadPin(KEY_L_GPIO_Port,KEY_L_Pin)
#define KEY_UP HAL_GPIO_ReadPin(KEY_WKUP_GPIO_Port,KEY_WKUP_Pin)uint8_t key_scan(uint8_t mode)
{static uint8_t key = 1;if(mode)key = 1;if(key == 1 && (KEY_R == 0 || KEY_D == 0 || KEY_L == 0 || KEY_UP == 1)){key = 0;HAL_Delay(2);if(KEY_R == 0) return 1;else if(KEY_D == 0) return 2;else if(KEY_L == 0) return 3;else if(KEY_UP == 1) return 4;}else if(KEY_R == 1 && KEY_D == 1 && KEY_L == 1 && KEY_UP == 0)key = 1;return 0;
}

四、蜂鸣器

由原理图可知无源蜂鸣器在PB1,刚好在ITM3_CH4通道可使用PWM驱动。

CubeMX配置TIM3的CH4通道,使用2KHz频率驱动蜂鸣器。 

#define BEEP_Init HAL_TIM_PWM_Start_IT(&htim3,TIM_CHANNEL_4)//2KHz NO Source BEEP
#define BEEP_ON  TIM3->CCR4 = 50
#define BEEP_OFF TIM3->CCR4 = 100

1.完整IO控制代码

#ifndef __key_H__
#define __key_H__#include "main.h"#define BEEP_Init HAL_TIM_PWM_Start_IT(&htim3,TIM_CHANNEL_4)//2KHz NO Source BEEP
#define BEEP_ON  TIM3->CCR4 = 50
#define BEEP_OFF TIM3->CCR4 = 100#define LED_OFF HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET)
#define LED_ON  HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET)
#define LED     HAL_GPIO_ReadPin(LED_GPIO_Port,LED_Pin)
#define LED_TOG HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin)#define KEY_R  HAL_GPIO_ReadPin(KEY_R_GPIO_Port,KEY_R_Pin)
#define KEY_D  HAL_GPIO_ReadPin(KEY_D_GPIO_Port,KEY_D_Pin)
#define KEY_L  HAL_GPIO_ReadPin(KEY_L_GPIO_Port,KEY_L_Pin)
#define KEY_UP HAL_GPIO_ReadPin(KEY_WKUP_GPIO_Port,KEY_WKUP_Pin)uint8_t key_scan(uint8_t mode)
{static uint8_t key = 1;if(mode)key = 1;if(key == 1 && (KEY_R == 0 || KEY_D == 0 || KEY_L == 0 || KEY_UP == 1)){key = 0;HAL_Delay(2);if(KEY_R == 0) return 1;else if(KEY_D == 0) return 2;else if(KEY_L == 0) return 3;else if(KEY_UP == 1) return 4;}else if(KEY_R == 1 && KEY_D == 1 && KEY_L == 1 && KEY_UP == 0)key = 1;return 0;
}#endif

五、TFT彩屏驱动

屏幕使用SPI+DMA驱动,背光引脚暂未使用调光设置没开启PWM。

详细代码介绍可转【CubeMX-HAL库】软件、硬件SPI+DMA驱动TFT彩屏(LVGL)

六、ADC多通道

1.通道确认

由原理图可知,我们本次需要采集的ADC主要有两个三项电流部分、NTC控制板温度、芯片内部温度。

2.CubeMX配置

①开启对应的ADC通道

②选择规则组通道 

 ③开启DMA

④开启ADC中断

可进行DMA采集一定次数之后,在中断中进行滤波。

 3.KEIL配置

①内部温度传感器

#define Vsense 0.76f //温度传感器在25℃时的电压值
#define Avg_Slope 0.0025f //温度与Vsense曲线的平均斜率
float ADC_Get_MCU_Temperature(void)//获取内部温度传感器温度
{float adc_vol,temp;adc_vol = ADC_T * 3.3f / 4096;temp = (adc_vol - Vsense) / Avg_Slope + 25;return temp;
}

②NTC热敏电阻

本次NTC使用10K ±1%精度的电阻,

 由原理图中的NTC电路,推算采集的电压值,然后在反推当前NTC的阻值。(下面3.3V改为5V)

(当10K在下,NTC在上时计算如下:) 

查表法计算NTC温度
#define  data0   28017
#define  data1 	 26826
#define  data2	 25697
#define  data3	 24629
#define  data4	 23618
#define  data5	 22660
#define  data6	 21752
#define  data7	 20892
#define  data8	 20075
#define  data9	 19299
#define  data10	 18560
#define  data11	 18482
#define  data12	 18149
#define  data13	 17632
#define  data14	 16992
#define  data15	 16280
#define  data16	 15535
#define  data17	 14787
#define  data18	 14055
#define  data19	 13354
#define  data20	 12690
#define  data21	 12068
#define  data22	 11490
#define  data23	 10954
#define  data24	 10458
#define  data25	 10000
#define  data26	 9576
#define  data27	 9184
#define  data28	 8819
#define  data29	 8478
#define  data30	 8160
#define  data31	 7861
#define  data32	 7579
#define  data33	 7311
#define  data34	 7056
#define  data35	 6813
#define  data36	 6581
#define  data37	 6357
#define  data38	 6142
#define  data39	 5934
#define  data40	 5734
#define  data41	 5541
#define  data42	 5353
#define  data43	 5173
#define  data44	 4998
#define  data45	 4829
#define  data46	 4665
#define  data47	 4507
#define  data48	 4355
#define  data49	 4208
#define  data50	 4065
#define  data51	 3927
#define  data52	 3794
#define  data53	 3664
#define  data54	 3538
#define  data55	 3415
#define  data56	 3294
#define  data57	 3175
#define  data58	 3058
#define  data59	 2941
#define  data60	 2825
#define  data61	 2776
#define  data62	 2718
#define  data63	 2652
#define  data64	 2582
#define  data65	 2508
#define  data66	 2432
#define  data67	 2356
#define  data68	 2280
#define  data69	 2207
#define  data70	 2135
#define  data71	 2066
#define  data72	 2000
#define  data73	 1938
#define  data74	 1879
#define  data75	 1823
#define  data76	 1770
#define  data77	 1720
#define  data78	 1673
#define  data79	 1628
#define  data80	 1586
#define  data81	 1546
#define  data82	 1508
#define  data83	 1471
#define  data84	 1435
#define  data85	 1401
#define  data86	 1367
#define  data87	 1334
#define  data88	 1301
#define  data89	 1268
#define  data90	 1236
#define  data91	 1204
#define  data92	 1171
#define  data93	 1139
#define  data94	 1107
#define  data95	 1074
#define  data96	 1042
#define  data97	 1010const uint16_t NTC_Table[98]={data0,data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12,data13,data14,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54,data55,data56,data57,data58,data59,data60,data61,data62,data63,data64,data65,data66,data67,data68,data69,data70,data71,data72,data73,data74,data75,data76,data77,data78,data79,data80,data81,data82,data83,data84,data85,data86,data87,data88,data89,data90,data91,data92,data93,data94,data95,data96,data97,
};uint16_t NTC_Get_Temp_Array(void)//NTC温度查表计算(放大了10倍)
{	float t;unsigned int dat,max,min,mid,da,j;t=ADC_NTC;t=t/4096;t=t*3300;//计算mV电压t=t/(5-t/1000); dat=t*10;da=dat;max=97;min=0;while(1)	{mid=(max+min)/2;if(NTC_Table[mid]<da)max=mid;elsemin=mid;if((max-min)<=1)break;}if(max==min)da=min*10;else {j=(NTC_Table[min]-NTC_Table[max])/10;j=(NTC_Table[min]-da)/j;da=j;da=10*min+da; //采集的温度放大了10倍}return da;		 
}
公式法计算NTC温度
#include "math.h"
/*Rt = Rp *exp(B*(1/T1-1/T2))Rt 是热敏电阻在T1温度下的阻值;Rp是热敏电阻在T2常温下的标称阻值;exp是e的n次方,e是自然常数,就是自然对数的底数,近似等于2.7182818;B值是热敏电阻的重要参数,教程中用到的热敏电阻B值为3380;这里T1和T2指的是开尔文温度,T2是常温25℃,即(273.15+25)KT1就是所求的温度
*/
#define Rp 10000.0f/* 10K */
#define T2 (273.15f + 25.0f)/* T2 */
#define Bx 3380.0f/* B */
#define Ka 273.15f/*** @brief  计算温度值* @note   计算温度分为两步:1.根据ADC采集到的值计算当前对应的Rt2.根据Rt计算对应的温度值* @param  para: 温度采集对应ADC通道的值(已滤波)* @retval 温度值*/
float NTC_Get_Temp_Count(uint16_t ADC_VALUE)//计算温度值
{float Rt;float temp;/*NTC在上,分压电阻在下时:Rt = 5.0 * 10000 / VTEMP - 10000,其中VTEMP就是温度检测通道采集回来的电压值,VTEMP = ADC值* 3.3/4096由此我们可以计算出当前Rt的值:Rt = 5.0f * 10000.0f / (para * 3.3f / 4096.0f ) - 10000.0f; NTC在下,分压电阻在上时:Rt = (10k * VTEMP) / (3.3 - VTEMP)Rt = 10000.0f * (para * 3.3f / 4096.0f) / (5.0f - (para * 3.3f / 4096.0f));*/  Rt = 10000.0f * (ADC_VALUE * 3.3f / 4096.0f) / (5.0f - (ADC_VALUE * 3.3f / 4096.0f));/*根据当前ADC值计算出Rt的值*//*根据当前Rt的值来计算对应温度值:Rt = Rp *exp(B*(1/T1-1/T2))*/temp = Rt / Rp;/* 解出exp(B*(1/T1-1/T2)) ,即temp = exp(B*(1/T1-1/T2)) */temp = log(temp);/* 解出B*(1/T1-1/T2) ,即temp = B*(1/T1-1/T2) */temp /= Bx;/* 解出1/T1-1/T2 ,即temp = 1/T1-1/T2 */temp += (1.0f / T2);/* 解出1/T1 ,即temp = 1/T1 */temp = 1.0f / (temp);/* 解出T1 ,即temp = T1 */temp -= Ka;/* 计算T1对应的摄氏度 */return temp;/* 返回温度值 */
}
实际效果

③INA240A2电流传感器 

 4.完整ADC代码

①BSP_ADC.c

②BSP_ADC.h

七、SPI_NOR FLASH

八、SDIO_SD卡 

九、I2C_AS5600编码器

1.Cube MX配置

快速模式 

2.KEIL配置

①AS5600.c

#include "AS5600.h"uint16_t AS5600_1_ReadRaw(void)//获取原始角度寄存器
{uint8_t data[2]={AS5600_RAW_ANGLE_H,0x00};HAL_I2C_Master_Transmit(&hi2c1,AS5600_ADDRESS_W,data,1,Time_Out);HAL_I2C_Master_Receive(&hi2c1,AS5600_ADDRESS_R,data,2,Time_Out);
//	I2C_Start();
//	I2C_SendByte(AS5600_ADDRESS_W);
//	I2C_RecviveAck();
//	I2C_SendByte(AS5600_RAW_ANGLE_H);
//	I2C_RecviveAck();
//	
//	I2C_Start();
//	I2C_SendByte(AS5600_ADDRESS_R);
//	I2C_RecviveAck();
//	Data_H = I2C_RecviveData();
//	I2C_RecviveAck();
//	
//	I2C_Start();
//	I2C_SendByte(AS5600_ADDRESS_R);
//	I2C_RecviveAck();
//	Data_L = I2C_RecviveData();
//	I2C_SendAck(1);
//	I2C_Stop();return (data[0] << 8) | data[1];
}float AS5600_1_GetAngle_0_2PI(void)//读取角度(0-2PI)
{float Angle = 0.0;Angle = AS5600_1_ReadRaw() * _2PI / 4096;
//	Angle = (Angle/4096) * 360;return Angle;
}float AS5600_1_Full_Angle = 0.0;
float AS5600_1_Last_Angle = 0.0;
float AS5600_1_GetAngle_Cycles(void)//读取圈数
{float Now_Angle = 0.0;float Angle = AS5600_1_GetAngle_0_2PI();Now_Angle = Angle - AS5600_1_Last_Angle;if(fabs(Now_Angle) > (0.8f*2*PI)){AS5600_1_Full_Angle = AS5600_1_Full_Angle + ((Now_Angle > 0) ? -1 :1);}AS5600_1_Last_Angle = Angle;return (AS5600_1_Full_Angle * 2 * PI + AS5600_1_Last_Angle);
}uint16_t AS5600_2_ReadRaw(void)//获取原始角度寄存器
{uint8_t data[2]={AS5600_RAW_ANGLE_H,0x00};HAL_I2C_Master_Transmit(&hi2c2,AS5600_ADDRESS_W,data,1,Time_Out);HAL_I2C_Master_Receive(&hi2c2,AS5600_ADDRESS_R,data,2,Time_Out);return (data[0] << 8) | data[1];
}float AS5600_2_GetAngle_0_2PI(void)//读取角度(0-2PI)
{float Angle = 0.0;Angle = AS5600_2_ReadRaw() * _2PI / 4096;return Angle;
}float AS5600_2_Full_Angle = 0.0;
float AS5600_2_Last_Angle = 0.0;
float AS5600_2_GetAngle_Cycles(void)//读取圈数
{float Now_Angle = 0.0;float Angle = AS5600_2_GetAngle_0_2PI();Now_Angle = Angle - AS5600_2_Last_Angle;if(fabs(Now_Angle) > (0.8f*2*PI)){AS5600_2_Full_Angle = AS5600_2_Full_Angle + ((Now_Angle > 0) ? -1 :1);}AS5600_2_Last_Angle = Angle;return (AS5600_2_Full_Angle * 2 * PI + AS5600_2_Last_Angle);
}float Last_Vel_ts = 0.0;
float Vel_Last_Angle = 0.0;
float AS5600_2_GetVelocity(void)
{float dt = 0.0;float Vel_ts = SysTick -> VAL;if(Vel_ts < Last_Vel_ts) dt = (Last_Vel_ts - Vel_ts)/9*1e-6f;else dt = (0xFFFFFF - Vel_ts + Last_Vel_ts)/9*1e-6f;if(dt < 0.0001f) dt = 10000;float Vel_Angle = AS5600_2_GetAngle_Cycles();float dv = Vel_Angle - Vel_Last_Angle;float velocity = (Vel_Angle - Vel_Last_Angle)/dt;Last_Vel_ts = Vel_ts;Vel_Last_Angle = Vel_Angle;return velocity;
}

②AS5600.h

#ifndef __AS5600_H
#define __AS5600_H#include "main.h"
#include <stdio.h>
#include <math.h>
#include "i2c.h"#define Time_Out 100//超时时间#define AS5600_ADDRESS_W    0X6C//加上读写位(1位1/0)
#define AS5600_ADDRESS_R    0X6D
#define AS5600_RAW_ANGLE_H  0X0C//原始角度寄存器[11:8]共12位分辨率
#define AS5600_RAW_ANGLE_L  0X0D//原始角度寄存器[7:0]#define PI   3.14159265359f
#define _2PI 6.28318530718fuint16_t AS5600_1_ReadRaw(void);//获取原始角度寄存器
float AS5600_1_GetAngle_0_2PI(void);//读取角度(0-2PI)
float AS5600_1_GetAngle_Cycles(void);//读取圈数uint16_t AS5600_2_ReadRaw(void);//获取原始角度寄存器
float AS5600_2_GetAngle_0_2PI(void);//读取角度(0-2PI)
float AS5600_2_GetAngle_Cycles(void);//读取圈数
float AS5600_2_GetVelocity(void);#endif

3.演示效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15624.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成右键的好用软件,支持多线程操作!

今天给大家分享一个超级实用的小工具&#xff0c;真的能帮上大忙呢&#xff01;这个软件是吾爱大神无知灰灰精心制作的&#xff0c;简直就是图片转换界的“小能手”。 它能一键把webp格式的图片转换成png格式&#xff0c;而且速度超快&#xff0c;完全不输那些付费的软件&#…

CSDN 博客之星 2024:肖哥弹架构的社区耕耘总结

#博客之星2024年度总评选—主题文章创作# CSDN 博客之星 2024&#xff1a;肖哥弹架构的社区耕耘总结 肖哥弹架构 是一位专注于技术分享和社区建设的博客作者。今年&#xff0c;我荣幸地再次入选CSDN博客之星TOP300&#xff0c;这不仅是对我过去努力的认可&#xff0c;更是对未…

【分布式理论7】分布式调用之:服务间的(RPC)远程调用

文章目录 一、RPC 调用过程二、RPC 动态代理&#xff1a;屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC序列化与协议编码1. RPC 序列化2. RPC 协议编码2.1. 协议编码的作用2.2. RPC 协议消息组成 四、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC…

综合评价 | 基于随机变异系数-TOPSIS组合法的综合评价模型(Matlab)

基于随机变异系数-TOPSIS组合法的综合评价模型 代码获取私信回复&#xff1a;综合评价 | 基于随机变异系数-TOPSIS组合法的综合评价模型&#xff08;Matlab&#xff09; 一、引言 1.1、研究背景与意义 在现代社会&#xff0c;随着信息量的不断增加和数据复杂性的提升&#…

采用分步式无线控制架构实现水池液位自动化管理

以下是基于巨控GRM241Q-4D4I4QHE模块的完整技术方案&#xff0c;采用分步式无线控制架构实现水池液位自动化管理&#xff1a; 一、系统架构设计 硬件部署 山顶单元 GRM241Q模块&#xff08;带4G功能&#xff09; 液位计&#xff08;4-20mA&#xff09; 功能&#xff1a;实时采…

Vue设计模式到底多少种?

Vue设计模式到底多少种&#xff1f; 很多同学问&#xff0c;Vue到底有多少种设计模式&#xff1f;&#xff1f;各个模式到底是什么意思&#xff1f;&#xff1f;又各自适合什么场景&#xff1f;&#xff1f; 这里我给大家直接说下&#xff0c;Vue的设计模式没有一个固定的数值…

[LeetCode] day19 454. 四数相加 II

题目链接 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&…

查看二进制程序内的 .interp 段

synopsis 可以使用 readelf &#xff0c;objdump&#xff0c;hexdump等工具查看 二进制程序内的.interp段信息。 1. 使用readelf查看.interp段 readelf 是一个查看ELF&#xff08;Executable and Linkable Format&#xff09;文件信息的工具&#xff0c;特别适合查看ELF头和…

【时时三省】(C语言基础)基础习题1

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 1.什么是程序&#xff1f;什么是程序设计 程序是为实现特定目标或解决特定问题&#xff0c;用计算机能理解和执行的语言编写的一系列指令的集合。 程序设计是问题分析&#xff0c;设计算法…

食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”

在食品和饮料行业的发展进程中&#xff0c;诸多生产瓶颈如重复性劳动负担、复杂环境作业难题、季节性产能波动等&#xff0c;长期制约着企业的高效运营与进一步发展。如今&#xff0c;富唯智能协作机器人的出现&#xff0c;为这些难题提供了完美的解决方案&#xff0c;正逐步改…

[创业之路-289]:《产品开发管理-方法.流程.工具 》-15- 需求管理 - 第1步:原始需求收集

概述&#xff1a; 需求收集是需求管理的第一步&#xff0c;也是产品开发、项目管理或软件设计中的关键步骤。原始需求收集主要是指从各种来源获取关于产品或服务的初步需求和期望。 以下是对需求管理中的原始需求收集的详细分析&#xff1a; 1、原始需求收集的目的 原始需求…

81页精品PPT | 华为流程与信息化实践与架构规划分享

华为流程与信息化实践与架构规划分享主要围绕华为在业务流程与信息化建设方面的经验、企业架构规划方法以及企业数字化转型路径展开。华为通过持续的业务变革和信息化建设&#xff0c;从本土企业逐步发展为国际化、全球化企业&#xff0c;其管理体系以持续创新和世界级管理体系…

DeepSeek 实践总结

目录 1、与AI对话-万能公式 chatbox 谷歌插件方式 命令行方式 2、ChatPPT+DeepSeek形成PPT 1、与AI对话-万能公式 *明确身份+任务+细节描述+输出格式* 这样的方式能更加准确的帮助你快速获得接近你想法的内容。 身份:你是谁?(网络负责人/记者/老师。。。)任务:要解决什…

51c自动驾驶~合集49

我自己的原文哦~ https://blog.51cto.com/whaosoft/13164876 #Ultra-AV 轨迹预测新基准&#xff01;清华开源&#xff1a;统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力&#xff0c;而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…

【AI学习】LLM的发展方向

个人的思考&#xff0c;请大家批评。 这一轮AI浪潮&#xff0c;叙事的主要逻辑就是scaling law&#xff0c;模型越大&#xff0c;性能越好&#xff0c;投入越大&#xff0c;性能越好&#xff0c;回报越高&#xff0c;等等。当然&#xff0c;首先要有一个能够scaling的模型架构…

C语言学习笔记:子函数的调用实现各个位的累加和

在C语言程序学习之初&#xff0c;我们都会学习如何打印 hello world&#xff0c;在学习时我们知道了int main&#xff08;&#xff09;是主函数&#xff0c;程序从main函数开始执行&#xff0c;这是流程控制的一部分内容。在主函数中我们想要实现一些功能&#xff0c;比如求各个…

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…

2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感

0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右&#xff0c;一次性备考笔试的三个科目 1.实习申请技术准备&#xff1a;微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐&#xff08;文本书写领域&am…

【Git】ssh如何配置gitlab+github

当我们工作项目在gitlab上&#xff0c;又希望同时能更新自己个人的github项目时&#xff0c;可能因为隐私问题&#xff0c;不能使用同一′密钥。就需要在本地电脑上分别配置两次ssh。 1、分别创建ssh key 在用户主目录下&#xff0c;查询是否存在“.ssh”文件&#xff1a; 如…

【设计模式】【行为型模式】职责链模式(Chain of Responsibility)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f4eb; 欢迎V&#xff1a; flzjcsg2&#xff0c;我们共同讨论Java深渊的奥秘 &#x1f…