自学K60时的部分小结

【GD32开发学习】三、系统时钟选择配置 1、GD32F系列开发版,我使用的事F427R-START开发版2、安装有Keil的电脑,当前keil版本为v5.31.0.0寄存器内容如下,具体介绍请查看芯片数据手册 总的来说就是SystemInit就是先初始化好内部高速时钟作为时钟源,然后再根据需求配置输出对应时钟 system_clock_200m_25m_hxtal()函数把外部25M高速时钟配置成200MCK_SYS时钟输出 注意,这个函数是以25M晶振配置,如果外部高速晶振接的不是25M有没有对应的配置函数,需要自己修改PSC的系数 阅读详情

以下内容是我在学习K60时的部分模块时的小结

注意:当程序需要运行浮点型数据时,要加入开启硬件浮点的代码:(放入 start 函数 的 mian函数之前即可!!!start 函数在 Chip\src\IAR\system_MK60DZ10.c 文件里定义

#if   MK60F15

SCB->CPACR |=((3UL << 10*2)|(3UL << 11*2));     /* set CP10 and CP11 Full Access 开硬件浮点型*/

#endif

1.gpio模块:

gpio_init (PTA8, GPI,0);        //初始化 PTA8 管脚为输入(低电平)
gpio_ddr (PTA8, GPI);       //设置 PTA8 管脚为输入 
gpio_set (PTA8, 1);         // PTA8 管脚为高电平
uint8 pta8_data=gpio_get (PTA8);// 获取 PTA8 管脚 输入电平(应保持管脚为输入状态)
gpio_turn (PTA8);           // PTA8 管脚 输出 反转(应保持管脚为输出状态)

/////////////////////////////////////////////////////////////////////////////////////////////
// 如果以上四条为大写的情况,则管脚不能是变量
// 即:
// GPIO_SET(PTxn,data) (PTXn_T(PTxn,OUT)= (data)) //设置输出电平
// GPIO_TURN(PTxn) (PTXn_T(PTxn,T)= 1) //翻转输出电平
// GPIO_GET(PTxn) (PTXn_T(PTxn,IN)) //读取引脚输入状态
// GPIO_DDR(PTxn,ddr) (PTXn_T(PTxn,DDR) = ddr) //输入输出状态
// 中的PTxn应为定值,不能是变量。
/////////////////////////////////////////////////////////////////////////////////////////////

//对多位的端口一起进行操作
GPIO_SET_NBIT(8,PTA8,255);  //PTA8以及其后7位管脚,同时被设置为:高电平
GPIO_DDR_NBIT(8,PTA8,255)   //PTA8以及其后7位管脚,同时被设置为:输出
GPIO_T_NBIT(NBIT,PTxn,data) 
GPIO_GET_NBIT(8,PTA8);      //同时读取PTA8以及其后7位管脚的电平高低
//对寄存器的为操作
PTA8_DDR==PT(A,8,PDDR)==PTXn_T(PTxn(只能宏定义,不能是变量),DDR)
PTA8_IN ============PT(A,8,PDIR)
PTA8_T  ============PT(A,8,PTOR)//翻转PTA8的电平输出端口(=1为翻转)
//32位操作
PTA_OUT=============PT_DWORD(A,PDOR)
PTA_IN =============PT_DWORD(A,PDIR)
PTA_DDR=============PT_DWORD(A,PDDR)
//定义PTA的16位输出反转:PTA_W0_T        PT_WORD(A,0,PTOR)
//定义PTA的16位输入端口:PTA_W0_IN        PT_WORD(A,0,PDIR)
//定义PTA的16位输出输入方向端口:PTA_W0_DDR        PT_WORD(A,0,PDDR)
//定义PTA的16位端口:PTA_W0_OUT        PT_WORD(A,0,PDOR)
//8位操作:PTA_B0_T======================PT_BYTE(A,0,PTOR)..........

port_init (PTA8, IRQ_RISING | PF | ALT1 | PULLUP ); //初始化 PTA8 管脚,上升沿触发中断,带无源滤波器,复用功能为 GPIO ,上拉电阻

port_init_NoALT(PTA8, IRQ_RISING | PF | PULLUP );   //初始化 PTA8 管脚,上升沿触发中断,带无源滤波器,上拉电阻(用于初始化引脚,不改变原有的MUX复用功能)

外部中断:
porta_handler(void);
//假设 PTA7 需要执行的用户任务函数为 func() ,则可以直接调用如下宏定义:PORT_FUNC(A,7,func);
用法举例:

    (1) void porta_handler(void)
        {
            uint8 n = 0; //引脚号

                    //PTA6
             n = 6;
            if (PORTA_ISFR & (1 << n)) { //PTA6 触发中断
            PORTA_ISFR = (1 << n); //写 1 清中断标志位

            /* 以下为用户任务 */
            key();

            /* 以上为用户任务 */
             }
        }

    (2) void porta_handler(void)
        {
                PORT_FUNC(A,6,key);//PTA6触发中断,执行用户函数key
        }

2.LED模块:

led_init (LED0);    //初始化 LED0

led (LED0,LED_ON); //点亮 LED0

led_turn (LED0);    // LED0灯亮灭反转

3.UART模块:

uart_init (UART1,19200);             //初始化 串口 1 波特率为 19200

uart_getchar (UART3,&ch);            //等待接收 1 个字节,保存到 ch 里

uart_querychar (UART3,&ch) == 1          //查询接收通信缓冲区内 1 个字符,保存到 ch 里;查询接收 1 个字符,若接收到数据则返回1并存储到ch形参指向的地址,否则返回0

uint32 num = uart_querystr(UART3,&str,100-1);//在最大可存储字节上减一字节空出给’\0;返回接收到的字节数

uint32 uart_querybuff (UARTn_e, char *buff, uint32 max_len)//参照uart_querystr,唯一不同是不会因为遇到字符串结尾标志’\0’而退出,会持续读取通讯缓冲区直到规定的最大值max_len

if(uart_query(UART3) == 1)           //查询是否接收到数据

uart_putchar (UART3, ‘A’); //发送字节’A

uart_putbuff (UART3,”1234567”, 3); //实际发送了 3 个字节’1’,’2’,’3’

uart_putstr (UART3,”1234567”); //实际发送了 7 个字节

uart_rx_irq_en (UARTn_e); //开串口接收中断 
uart_rx_irq_dis(UARTn_e); //关串口接收中断

uart_tx_irq_en (UARTn_e); //开串口发送中断 
uart_tx_irq_dis(UARTn_e); //关串口发送中断

uart_txc_irq_en (UARTn_e); //开串口发送完成中断 
uart_txc_irq_dis(UARTn_e); //关串口发送完成中断

4.I2C模块:(没有实测过,但看论坛里说自带的IIC模块不是很好用,容易受影响)

i2c_init(I2C0,400*1000); // 初始化 I2C0,期待的波特率为 400k

i2c_write_reg(I2C0, 0x1D, 1,2); //向从机 0x1D 的寄存器 1 写入数据 2

uint8 value = i2c_read_reg(I2C0, 0x1D, 1);//读取 I2C 设备指定寄存器的一个字节数据

5.SPI模块:

uint32 baud = spi_init(SPI0,SPIn_PCS0, MASTER,10*1000*1000);//初始化 SPI,选择 CS0,主机模式, 波特率为 1M ,返回真实波特率到 baud 变量

void spi_mosi(SPI0,SPIn_PCS0,buff,buff,2); //发送 buff 的内容,并把接收的数据存放到 buff 里,长度为 2 字节

spi_mosi_cmd (SPI0,SPIn_PCS0,cmd,NULL,buff,buff,1,2);//发送 cmd/buff 的内容,不接收 cmd 发送时的数据,接收 buff 发送时的数据到 buff 里,长度分别为 1、 2 字节
PS:发送和接受的存储地址可用同一个,先发送存储地址中的8位数据到从机SPI缓冲区,然后从接收缓冲区中将接收的数据写入存储地址(覆盖发送的数据)。

6.ADC模块:

adc_init (ADC0_SE10 ); //初始化 ADC0_SE10 , K60 使用 PTA7 管脚

uint16 var = adc_once(ADC0_SE10, ADC_8bit);//采样一次一路模拟量的 AD 值,返回采样数值。按采集精度来返回不同大小, 16 位精度最大返回: 65535

adc_stop(ADC0);//停止 ADC 模块的 AD 转换,同一个模块的所有通道都会停止。

7.DAC模块:

dac_init (DAC0 ); //初始化 DAC0

dac_out (DAC0 ,0x100); //初始化 DAC0 输出 0x100 数字量对应的模拟量: 3300*(1 + 0x100)/4096 mV  

8.FTM(高级定时器模块、易用定时器模块)

    (1)pwm模块:
        ftm_pwm_init(FTM0, FTM_CH6,200, 10); //初始化 FTM0_CH6 为 频率 200Hz 的 PWM,占空比为10/FTM0_PRECISO
        (同一个FTM,各通道的PWM频率是一样的,但占空比可不一样)
        ftm_pwm_duty(FTM0, FTM_CH6, 10);//设置 FTM0_CH6 占空比为 10/FTM0_PRECISON

        ftm_pwm_freq(FTM0,200);//设置 FTM0 的 频率 为 200Hz
        (改频率后,需要重新配置占空比)
(2)输入捕捉模块:
        ftm_input_init(FTM0,FTM_CH0,FTM_Rising,FTM_PS_2);//设置 FTM0_CH0 上升沿触发输入捕捉,二分频

        uint16 data = ftm_input_get (FTM0, FTM_CH0);// 获取 FTM0_CH0 输入捕捉事件触发时的计数值

        ftm_input_clean(FTMn_e );//清空计数器的值。即计数器重新开始计数。

        FTM1_Input_test_handler(void)//中断函数

(3)正交解码:(用此模块时,FTM1的两个通道都要连接)
        ftm_quad_init(FTM1);//初始化 FTM1 为正交解码模式

        int16 count = ftm_quad_get(FTM1);//获取 FTM1 交解码 的脉冲数

        ftm_quad_clean(FTM1);//复位 FTM1 正交解码 的脉冲数

9.PIT(定时模块)

(1)定时中断:
        pit_init(PIT0, 1000); //定时 1000 个 bus 时钟 后中断
        [
        pit_init_ms(PITn_e,ms) //初始化 PITn,并设置定时时间(单位为 ms) 
        pit_init_us(PITn_e,us) //初始化 PITn,并设置定时时间(单位为 us) 
        pit_init_ns(PITn_e,ns) //初始化 PITn,并设置定时时间(单位为 ns)
        ]
        set_vector_handler(PIT0_VECTORn,pit_hander); // 设置中断服务函数到中断向量表里
        enable_irq(PIT0_IRQn); // 使能 PIT 中断

        //PIT_Flag_Clear(PIT0);//清 PITn 中断标志。一般在中断服务函数和 pit 初始化函数里用到

(2)计时:
        pit_time_start(PIT0); //PIT0 计时开始

        uint32 time = pit_time_get(PIT0); //获取 PITn 计时时间
        (获取 PITn 计时时间并返回(超时时会关闭 定时器)(单位为 bus 时钟) (若值为0xFFFFFFFF,则表示超时溢出))
        [.........]
        pit_close(PIT0); //关闭 PIT0

(3)延时:
        pit_delay(PIT0, 1000);//延时 1000 个bus时钟
        [
            (不需要初始化,可直接调用) 
            pit_delay_ms(PITn_e,ms) //PIT 延时 ms 
            pit_delay_us(PITn_e,us) //PIT 延时 us 
            pit_delay_ns(PITn_e,ns) //PIT 延时 ns
        ]

10.lptmr(低功耗定时器)

注意:LPTMR模块的计数寄存器虽然是32位的但是31-16位是只读预留位,始终为0,所以计数时最大数字只能有16位 

(1)延时:
    lptmr_delay_ms(32); // LPTMR 延时 32ms

    lptmr_delay_us(32); // LPTMR 延时 32us

(2)定时:
    lptmr_timing_ms(32); // LPTMR 定时 32ms

    lptmr_timing_us(32); // LPTMR 定时 32us

    set_vector_handler(LPTimer_VECTORn,lptmr_hander); // 设置中断服务函数到中断向量表里

    enable_irq(LPTimer_IRQn); // 使能 LPTMR 中断

(3)计时:
    lptmr_time_start_ms(void);//开始计数

    uint32 lptmr_time_get_ms(void); //获取计数时间( 不同的开始计时单位,需要配套相应不同的获取计时时间单位函

    [.....us.....]

    void lptmr_time_close();    //关闭 LPTMR 计时

(4)脉冲技术:
    lptmr_pulse_init(LPT0_ALT1,0xFFFF,LPT_Rising);// LPTMR 脉冲计数, 计数 0xFFFF 后触发中断请求(需要开中断才执行中断服务函数),上升沿捕捉

    uint16 data = lptmr_pulse_get(); //获取脉冲计数值

    lptmr_counter_clean(); //清空 LPTMR 脉冲计数

11.DMA模块:
dma_portx2buff_init(DMA_CHn, void *SADDR, void *DADDR, PTXn_e, DMA_BYTEn, uint32count, uint32 cfg); //初始化 DMA,使得 PORT 端口数据通过 DMA 传输到 BUFF 缓冲区
ps:用到的输入端口和触发端口已经内部初始化,不需要再额外初始化。默认触发端口为上升沿触发,如果需要配置为下降沿触发,可调用 port_init 函数来重新配置。

dma_repeat(DMA_CHn CHn,void *SADDR, void *DADDR,uint32 count)   //DMA 重新配置,传输完毕后,一些参数会改变,需要重新赋值。
ps:DMA 的目的地址每次传输都会加一,有时不需要加一可以使用此函数复位

DMA_IRQ_EN(DMA_CH3); //允许 DMA 通道 3 传输完成中断   

DMA_IRQ_DIS(DMA_CH3); //禁止 DMA 通道 3 传输完成中断  

DMA_IRQ_CLEAN(DMA_CH3); //清除 DMA 通道 3 传输中断标志位(一般用于中断程序中)
DMA_EN(DMA_CH3); //使能 DMA 通道 3 硬件 DMA 请求    

DMA_DIS(DMA_CH3); //禁止 DMA 通道 3 硬件 DMA 请求
手把手教你用FPGA解析AD9680的JESD204B数据流(附Verilog代码) 本文详细介绍了如何利用FPGA解析AD9680的JESD204B数据流,包括协议核心机制、硬件平台搭建、Verilog代码实现及调试技巧。通过实战案例和代码示例,帮助工程师快速掌握高速ADC数据采集与处理技术,提升系统性能。 阅读详情

相关推荐

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9248

STM32F4时钟设置分析

STM32F4时钟设置分析 本文博客链接:http://blog.youkuaiyun.com/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 MCU:STM32F407VGT6 STM32F4启动与STM32F10X不同,时钟已经默认配置好. 1.启动代码: 文件:s

niepangu的专栏 1119

STM32L475基于完全空白的项目,完成时钟树初始化配置并验证

本文介绍了STM32L4系列微控制器的时钟系统初始化方法。系统时钟分为主时钟SYSCLK和外设时钟两部分,主时钟决定系统性能上限。文章详细分析了四种时钟源(HSE、HSI、MSI、PLL)的特性,推荐使用8MHz外部晶振HSE经PLL倍频至80MHz的方案。同时说明了AHB和APB总线的分频设置,并提供了完整的时钟初始化代码实现,包括FPU初始化、PLL配置、总线分频等关键步骤。

万波的技术博客 770

Matlab 2023b 科研党必备:MOSEK 10.1.25 安装与配置全记录(附License过期解决方案)

本文详细介绍了在Matlab 2023b中安装与配置MOSEK 10.1.25的全过程,特别针对科研用户提供学术许可申请、证书文件部署及环境集成的实用指南。文章还包含常见问题解决方案和性能调优建议,帮助用户高效完成优化计算任务。

weixin_30598225的博客 171

Codex入门01-环境安装(小白入门:手把手教你安装配置,国内网络也能搞定)

本文手把手教你从零搭建 Codex CLI 开发环境。内容涵盖 Node.js 安装(macOS/Windows/Linux)、Codex CLI 全局安装、ChatGPT 账号登录认证,以及国内网络代理配置。还包括常见问题排查和一键启动脚本编写。跟着截图一步步操作,10分钟搞定全部环境,开始用AI写代码!

yueyeguzhuo的专栏 345

第二章:SystemInit系统初始化函数详解

void SystemInit(void){  /* FPU settings ------------------------------------------------------------*/  #if (__FPU_PRESENT == 1) &amp;&amp; (__FPU_USED == 1)    SCB-&gt;CPACR |= ((3UL &lt;&lt; 10*2)|(...

qq_33553024的博客 1896

GD32F4xx MCU ADC+DMA 多通道采样

1、GD32F4xx ADC GD32F4xx 的12位ADC是一种采用逐次逼近方式的模拟数字转换器。 1.1 主要特征 可配置12位、10位、8位、6位分辨率; ADC采样率:12位分辨率为2.6MSPs,10位分辨率为3.0 MSPs。分辨率越低,转换越快; PS: MSPs (模拟混合信号转换速率),是指完成1次从模拟转换到数字的AD转换所需的时间的倒数。常用单位是ksps和Msps,表示每秒采样(千)/(百万)次(kilo / Million Samples per Second)。 1msps

madao1234的博客 8118

STM32F4外设配置速查【FPU与DSP部分】

FPU与DSP 详细内容参考Cortex-M4内核编程手册 FPU调用 stm32f4xx及更高配置stm32单片机才有fpu支持 stm32f4带有32位单精度硬件FPU,支持浮点指令集,整个FPU单元能被使能和关闭 使用协处理器控制寄存器(SCB->CPACR)中的CP11和CP10启用/关闭FPU 芯片复位后,CP10、CP11四个位默认为0,FPU关闭 将CP10、CP11同时置位即可开启FPU FPU使用 system_stm32f4xx.c截取 void SystemInit(void)

qq_40500005的博客 1622

AMD KFD的SDMA Packet 类型和定义解析

本文详细分析了AMD GPU架构中的SDMA(System Direct Memory Access)数据传输机制,重点介绍了其核心数据结构——SDMA Packet。SDMA通过8种主要Packet类型(包括内存拷贝、数据写入、屏障同步、中断触发等)实现高效主机-设备通信。每种Packet采用位域结构和联合体封装设计,在保证功能完整性的同时实现空间优化。这些Packet支持丰富的访问属性和扩展字段,适用于高性能数据搬运、内存初始化、任务同步、性能分析等场景,为GPU计算提供了灵活高效的数据传输解决方案。

图形/计算GPU的驱动与虚拟化技术分享园地 1254

第4章--CANoe library开发 - 诊断功能

因为专栏要做的是汽车ECU自动化测试程序,测试的是ECU的诊断和刷新,因此就需要利用CANoe的接口,开发一些方便使用的诊断报文收发函数。

j187067046的博客 1399

RuView 的 SPARC Refinement 智能体:基于模式记忆与 TDD 的自学习代码精炼阶段

本文解析 RuView 仓库中 SPARC 开发方法论的第四阶段——Refinement(精炼)智能体的完整定义与运行机制。该文档 [refinement.md](https://link.gitcode.com/i/55d76db6ee345d25b6add1f86eddafcb) 不仅规定了"如何精炼代码"(TDD 红-绿-重构、性能调优、错误处理加固、质量指标),还通过 frontmatte

gitblog_00802的博客 167

YOLOv11改进 - C3k2融合 | C3k2融合融合WDBB宽度多样分支模块(Width Diverse Branch Block)通过多尺度分支增强特征表征能力

本文着眼于灰度图像目标检测所面临的挑战,提出了增强型目标检测网络 YOLO - MIF,该网络整合了多种多信息融合策略以对 YOLOv8 网络进行改进。文章开篇介绍了一种可创建伪多通道灰度图像的技术,此技术能增加网络的通道信息,同时缓解潜在的图像噪声与虚焦模糊问题。随后运用网络结构重新参数化技术,在不增加推断时间的情况下提升网络的检测性能。此外,引入了一种新颖的解耦式检测头,增强了模型处理灰度图像时的表现能力。

魔改工程师的博客 770

RuView 仓库中的 ML 开发者 Agent:data-ml-model 的完整配置、自学习超参优化协议与模式记忆的源码落地

本篇围绕 RuView 仓库中的 [.claude/agents/data/data-ml-model.md](https://link.gitcode.com/i/6a3dae973320cf71daaeb052da18e281) 展开:它是一个名为 `ml-developer` 的 Claude Code 子代理定义文件(v2.0.0-alpha),承担机器学习模型从数据预处理、训练、调参到部

gitblog_00415的博客 521

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

我想谈谈关于Java面试那些事,Java开发三年月薪才12K

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了需要掌握的,我也把这些知识点都整理起来了[外链图片转存中…(img-Wgq17FGn-1710874515963)][外链图片转存中…(img-s0uCgpWW-1710874515963)]点击传送门,即可免费领取!

2401_83641360的博客 703

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

小白怎么系统的自学计算机科学和黑客技术?

小白怎么系统的自学计算机科学和黑客技术?

分享Python知识 121

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

字节面试官:JVM虚拟机原理深入解析

零基础如何学习Java? 首先,你要明白一点,Java入门不难! 无论你是从事哪个行业,兴趣一定是最好的老师,也是你学习的动力。 学习方式1:自学 自学模式其实我个人不建议绝大部分的人选择,因为自学是需要比较强的自制力以及约束力,例如今天计划自学三小时,但因为一个电影新出,就决定先看完电影再说,一个游戏邀约,就决定先打一把游戏再说,一个“今天已经很累了”,就放弃了这一天的学习计划,而很不凑巧的是,现在大部分年轻人都是如此。所以自学的人往往花费很多时间成本,最后达到的效果或许也不是很满意。 但是如果你一定要选

m0_57472099的博客 183

Java自学!mysqlnotifier缺少根元素

一. 为什么使用spring cloud alibaba 很多人可能会问,有了spring cloud这个微服务的框架,为什么又要使用spring cloud alibaba这个框架了? 最重要的原因在于spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,大多公司在使用的时候就发现过其一个细小的Bug;而其他的众多组件也将停止维护。所以急需其他的一些替代产品,也就是spring cloud alib

m0_57286622的博客 262

GitHub上标星13k的《Java面试突击版》,程序员如何在工作中自我增值

既已说到spring cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?就个人而言,对于整个微服务架构,像RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。

2301_76668692的博客 672

作为Java程序员都应掌握:手把手教会你,含爱奇艺,小米,腾讯,阿里

零基础如何学习Java? 首先,你要明白一点,Java入门不难! 无论你是从事哪个行业,兴趣一定是最好的老师,也是你学习的动力。 学习方式1:自学 自学模式其实我个人不建议绝大部分的人选择,因为自学是需要比较强的自制力以及约束力,例如今天计划自学三小时,但因为一个电影新出,就决定先看完电影再说,一个游戏邀约,就决定先打一把游戏再说,一个“今天已经很累了”,就放弃了这一天的学习计划,而很不凑巧的是,现在大部分年轻人都是如此。所以自学的人往往花费很多时间成本,最后达到的效果或许也不是很满意。 但是如果你一定要选

m0_56604931的博客 167

RAPR 驱动存储清理完全指南:20 分钟给 C 盘腾出几个 GB

Driver Store Explorer(RAPR)是一款免费开源的 Windows 驱动存储清理工具,可以完整列出、备份并批量删除 DriverStore 中积压的旧驱动包。这篇指南带你走完"安装 → 备份 → 识别旧版 → 删除 → 验证"的完整流程,C 盘通常能释放 1~5GB 甚至更多空间,全程不需要命令行基础。 ## 那个只剩 1.2GB 的 C 盘,被谁吃掉了 🍂 周一上午 9

gitblog_00811的博客 184

十年开发经验Java架构师,java三年面试题及答案

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

2401_83703951的博客 931

java多态底层原理,java多线程视频教学

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!

2303_77877769的博客 844

2024年3月30号成功收获字节(百度)Java岗Offer 特此分享面经(1)

笔者已经把面试题和答案整理成了面试专题文档网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2301_82242988的博客 630

《最优状态估计-卡尔曼,H∞及非线性滤波》:第10章 有关卡尔曼滤波的其他讨论

《最优状态估计-卡尔曼,H∞及非线性滤波》:第10章 有关卡尔曼滤波的其他讨论前言1. MATLAB仿真:示例10.12. MATLAB仿真:示例10.23. MATLAB仿真:示例10.34. MATLAB仿真:示例10.45. 小结 前言 《最优状态估计-卡尔曼,H∞及非线性滤波》由国外引进的一本关于状态估计的专业书籍,2006年正式出版,作者是Dan Simon教授,来自克利夫兰州立大学,电气与计算机工程系。主要应用于运动估计与控制,学习本文的过程中需要有一定的专业基础知识打底。 本书共分为四个部分,

sinat_34897952的博客 605

15分钟的字节跳动视频面试,,java面试逻辑题及答案

JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存**,Hadoop,Spark,Storm,YARN,机器学习,云计算…

q16974058的博客 891
下一篇: 24c04读写
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值