nrf51822库函数速查

NRF52832-DFU-Bootloader源码详解 NRF52832-DFU-Bootloader源码详解 Bootloader源码:nRF5_SDK_15.0.0_a53641a\examples\dfu\secure_bootloader\pca10040_ble Keil5中的C/C++中宏定义为: APP_TIMER_V2 APP_TIMER_V2_RTC1_ENABLED BLE_STACK_SUPPORT_REQD BOARD_PCA10040 CONFIG_GPIO_AS_PINRESET FLOAT_ABI_HARD NRF52 . 阅读详情

nrf_soc.h

//初始化互斥锁
uint32_t sd_mutex_new(nrf_mutex_t * p_mutex);

//尝试获取互斥锁.
uint32_t sd_mutex_acquire(nrf_mutex_t * p_mutex);

//释放互斥锁.
uint32_t sd_mutex_release(nrf_mutex_t * p_mutex);

//使能外部中断.
uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn);

//禁止外部中断.
uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn);

// Get Pending Interrupt.
uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq);

// Set Pending Interrupt.
uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn);

// Clear Pending Interrupt.
uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn);

//设置中断优先级.
uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t priority);

//取得中断优先级.
uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t * p_priority);

//系统复位.
uint32_t sd_nvic_SystemReset(void);

//进入临界区.
uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region);

//退出临界区.
uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region);

// 查询应用的随机数池容量.
uint32_t sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity);

//取得应用中有效地随机数字节数.
uint32_t sd_rand_application_bytes_available_get(uint8_t * p_bytes_available);

//从池中获取随机数字节.
uint32_t sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length);

//取得复位原因寄存器的值. 
uint32_t sd_power_reset_reason_get(uint32_t * p_reset_reason);

//清除复位原因寄存器的若干bit. 
uint32_t sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk);

//设置CPU睡眠时的电源模式.
uint32_t sd_power_mode_set(nrf_power_mode_t power_mode);

//关闭系统. 
uint32_t sd_power_system_off(void);

//开关电源失效比较器
uint32_t sd_power_pof_enable(uint8_t pof_enable);

//设置电源故障阈值.
uint32_t sd_power_pof_threshold_set(nrf_power_failure_threshold_t threshold);

//设置 NRF_POWER->RAMON 寄存器.
uint32_t sd_power_ramon_set(uint32_t ramon);

//清除 NRF_POWER->RAMON 寄存器.
uint32_t sd_power_ramon_clr(uint32_t ramon);

// Get contents of NRF_POWER->RAMON register, indicates power status of ram blocks.
uint32_t sd_power_ramon_get(uint32_t * p_ramon);

//Set bits in the NRF_POWER->GPREGRET register.
uint32_t sd_power_gpregret_set(uint32_t gpregret_msk);

//Clear bits in the NRF_POWER->GPREGRET register.
uint32_t sd_power_gpregret_clr(uint32_t gpregret_msk);

//Get contents of the NRF_POWER->GPREGRET register.
uint32_t sd_power_gpregret_get(uint32_t *p_gpregret);

//设置DCDC模式.
uint32_t sd_power_dcdc_mode_set(nrf_power_dcdc_mode_t dcdc_mode);

//请求使用高频晶体振荡器.
uint32_t sd_clock_hfclk_request(void);

//释放高频晶体振荡器.
uint32_t sd_clock_hfclk_release(void);

//检查高频晶体振荡器是否在运行.
SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running));

//等待程序事件.
uint32_t sd_app_evt_wait(void);

// Get PPI channel enable register contents.
uint32_t sd_ppi_channel_enable_get(uint32_t * p_channel_enable);

//Set PPI channel enable register.
uint32_t sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk);

//Clear PPI channel enable register.
uint32_t sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk);

// Assign endpoints to a PPI channel.
uint32_t sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint);

//Task to enable a channel group.
uint32_t sd_ppi_group_task_enable(uint8_t group_num);

//Task to disable a channel group.
uint32_t sd_ppi_group_task_disable(uint8_t group_num);

//Assign PPI channels to a channel group.
uint32_t sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk);

//Gets the PPI channels of a channel group.
uint32_t sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk);

//配置无线通知信号.
uint32_t sd_radio_notification_cfg_set(nrf_radio_notification_type_t type, nrf_radio_notification_distance_t distance);

// AES-ECB加密.
uint32_t sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data);

// Gets any pending events generated by the SoC API.
uint32_t, sd_evt_get(uint32_t * p_evt_id);

//取得芯片温度
uint32_t sd_temp_get(int32_t * p_temp);

//写数据到Flash
sd_flash_write(uint32_t * const p_dst, uint32_t const * const p_src, uint32_t size);

//擦除Flash页
uint32_t sd_flash_page_erase(uint32_t page_number);

// Flash Protection set
uint32_t sd_flash_protect(uint32_t protenset0, uint32_t protenset1);

ble.h

//从队列中取得等待处理的事件
uint32_t, sd_ble_evt_get(uint8_t* p_dest, uint16_t *p_len);

//取得BLE协议栈中有效地传输缓冲区总数
uint32_t sd_ble_tx_buffer_count_get(uint8_t* p_count);

//添加一个厂商特定UUID.
uint32_t sd_ble_uuid_vs_add(ble_uuid128_t const * const p_vs_uuid, uint8_t * const p_uuid_type);

//解码原始小端UUID字节(16bit或128bit) 到24bit的ble_uuid_t结构
uint32_t sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const * const p_uuid_le, ble_uuid_t * const p_uuid);

//编码24bit的ble_uuid_t结构到原始小端UUID字节(16bit或128bit)
uint32_t sd_ble_uuid_encode(ble_uuid_t const * const p_uuid, uint8_t * const  p_uuid_le_len, uint8_t * const p_uuid_le));

//取得版本信息
uint32_t sd_ble_version_get(ble_version_t * p_version);

//提供用户内存块
uint32_t sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t *p_block);

ble_gap.h

//设置本地蓝牙MAC地址
uint32_t sd_ble_gap_address_set(ble_gap_addr_t const * const p_addr);

//取得本地蓝牙MAC地址
uint32_t sd_ble_gap_address_get(ble_gap_addr_t * const p_addr);

//设置,清除,更新广播扫描响应数据
uint32_t sd_ble_gap_adv_data_set(uint8_t const * const p_data, uint8_t dlen, uint8_t const * const p_sr_data, uint8_t srdlen);

//开始广播(Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure)
uint32_t sd_ble_gap_adv_start(ble_gap_adv_params_t const * const p_adv_params);

//停止广播(Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure)
uint32_t sd_ble_gap_adv_stop(void);

//更新连接参数
uint32_t sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const * const p_conn_params);

//断开连接(GAP Link Termination).
uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code);

//设置无线发射功率dBm(accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm).
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power))
;

//Set GAP Appearance value.
uint32_t sd_ble_gap_appearance_set(uint16_t appearance);

//Get GAP Appearance value.
uint32_t, sd_ble_gap_appearance_get(uint16_t * const p_appearance);

//设置GAP外设优先连接参数
uint32_t sd_ble_gap_ppcp_set(ble_gap_conn_params_t const * const p_conn_params);

//取得GAP外设优先连接参数
uint32_t sd_ble_gap_ppcp_get(ble_gap_conn_params_t * const p_conn_params);

//设置GAP设备名
uint32_t sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const * const p_write_perm, uint8_t const * const p_dev_name, uint16_t len);

//取得GAP设备名
uint32_t, sd_ble_gap_device_name_get(uint8_t * const p_dev_name, uint16_t * const p_len);

//启动GAP认证流程
uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const * const p_sec_params);

//Reply with GAP security parameters.
uint32_t sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const * const p_sec_params);

//Reply with an authentication key
SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const * const key);

//Reply with GAP security information.
uint32_t sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const * const p_enc_info, ble_gap_sign_info_t const * const p_sign_info);

//Get the current connection security.
uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t * const p_conn_sec);

//开始接受RSSI值的变化通知
uint32_t sd_ble_gap_rssi_start(uint16_t conn_handle);

//停止接收RSSI值变化通知
SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle);

ble_gattc.h

//启动或继续GATT主要服务的发现过程
uint32_t sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const * const p_srvc_uuid);

//启动或继续GATT关系发现过程
uint32_t sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range);

//启动或继续GATT特性发现过程
uint32_t sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range);

//启动或继续GATT特性描述发现过程
uint32_t sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range);

//启动或继续通过GATT特性的UUID的读操作
uint32_t sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const * const p_uuid, ble_gattc_handle_range_t const * const p_handle_range);

//启动或继续GATT读取长特性或描述的过程
uint32_t sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset);

//启动GATT读取多个特性值的过程
uint32_t sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const * const p_handles, uint16_t handle_count);

//执行一个无报告的写操作
uint32_t sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const * const p_write_params);

//发送配置到GATT服务器
uint32_t sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle);

ble_gatts.h

//添加一个服务声明到本地服务的ATT表
uint32_t sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const*const p_uuid, uint16_t *const p_handle);

//添加一个包含声明到本地服务的ATT表
uint32_t sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *const p_include_handle);

//添加特性声明,特性值声明,可选的特性描述声明到ATT表
uint32_t sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const*const p_char_md, ble_gatts_attr_t const*const p_attr_char_value, ble_gatts_char_handles_t *const p_handles);

//添加描述到ATT表
uint32_t sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const * const p_attr, uint16_t* const p_handle);

//设置值到特性
uint32_t sd_ble_gatts_value_set(uint16_t handle, uint16_t offset, uint16_t* const p_len, uint8_t const * const p_value);

//取得属性值
uint32_t sd_ble_gatts_value_get(uint16_t handle, uint16_t offset, uint16_t *const p_len, uint8_t* const p_data);

//Notify或Indicate特性值.
uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const*const p_hvx_params);

//Indicate属性值改变
uint32_t sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle);

//报告读写授权请求
uint32_t sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const*const p_rw_authorize_reply_params);

//Update persistent system attribute information
uint32_t sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const*const p_sys_attr_data, uint16_t len); 

//Retrieve persistent system attribute information from the stack.
uint32_t sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t * const p_sys_attr_data, uint16_t* const p_len);

ble_l2cap.h

//注册一个L2CAP的CID
uint32_t sd_ble_l2cap_cid_register(uint16_t cid);

//注销CID
uint32_t sd_ble_l2cap_cid_unregister(uint16_t cid);

//发送L2CAP包
uint32_t sd_ble_l2cap_tx(uint16_t conn_handle, ble_l2cap_header_t const * const p_header, uint8_t const * const p_data);

nrf_sdm.h

//使能SoftDevice
uint32_t sd_softdevice_enable(nrf_clock_lfclksrc_t clock_source, softdevice_assertion_handler_t assertion_handler);

//禁用SoftDevice
uint32_t sd_softdevice_disable(void);

//检查SoftDevice是否已使能
uint32_t sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled);

//开始转发中断到应用程序
uint32_t sd_softdevice_forward_to_application(void);














micro:bit硬件解析与开发实战:从传感器到无线通信的创客指南 嵌入式系统与物联网开发中,微控制器是连接物理世界与数字世界的核心。其工作原理在于通过GPIO引脚读取传感器数据、控制执行器,并运行用户编写的程序逻辑。这项技术的价值在于降低了硬件开发门槛,使开发者能快速实现智能设备原型。在STEAM教育、创客项目及智能家居等场景中,微控制器扮演着关键角色。本文以流行的micro:bit开发板为例,深入剖析其**硬件设计**,包括集成的加速度计、磁力计等传感器,并详细讲解如何利用其**无线通信**模块(如蓝牙与无线电)构建互联应用,为初学者和爱好者提供从基础到进阶的实践路径。 阅读详情

相关推荐

基于micro:bit与MakeCode的环境数据记录仪设计与实践

数据记录是嵌入式系统与物联网应用中的基础技术,其核心原理是通过传感器采集环境信息,并按照预设策略存储至非易失性存储器中,便于后续分析与可视化。在STEM教育及科学探究中,数据记录技术能将抽象概念转化为可量化的证据链,帮助学生理解变量关系与趋势变化。本文以BBC micro:bit开发板为载体,结合其内置温度与光线传感器,详细讲解如何利用图形化编程平台MakeCode实现定时数据记录、存储空间管理及CSV格式导出。通过构建微型气象站实例,演示了从硬件配置、逻辑设计到部署分析的完整流程,为入门者提供了低成本、高

weixin_34197488的博客 410

Nordic NRF51 POF 电压失效比较器

Power-fail comparator The power-fail comparator (POF) can provide the CPU with an early warning of impending power failure. It will not reset the system, but give the CPU time to prepare for an orderl...

廖昌海的个人博客 972

用Micro:bit与ESP32自制无线MIDI纸板架子鼓:开源硬件的音乐创作实践

MIDI(乐器数字接口)是现代数字音乐制作的核心协议,它定义了电子乐器、计算机与音频设备之间通信的标准。其工作原理是将演奏信息(如音符、力度、音色)转化为数字指令,实现硬件与软件的无缝交互。这项技术的核心价值在于其通用性与灵活性,极大降低了音乐创作与制作的门槛,广泛应用于编曲、录音、现场演出及音乐教育等领域。通过结合开源硬件平台,如Micro:bit和ESP32,开发者可以低成本地构建自定义MIDI控制器,将物理交互转化为丰富的音乐表达。本文以制作一个无线MIDI纸板架子鼓为例,详细解析了如何利用Micro

weixin_33971977的博客 371

nRF51822库函数速查

nRF51822库函数速查 nrf_soc.h //初始化互斥锁 uint32_t sd_mutex_new(nrf_mutex_t * p_mutex); //尝试获取互斥锁. uint32_t sd_mutex_acquire(nrf_mutex_t * p_mutex)...

601

Micro:bit图形化编程入门:从零制作智能温度计与报警器

传感器是物联网设备感知物理世界的基础,其核心原理是将温度、光线等物理量转换为可处理的电信号。在嵌入式开发中,通过编程读取和处理传感器数据是实现设备智能化的关键一步。Micro:bit作为一款集成了多种传感器的教育开发板,为初学者提供了极佳的实践平台。其内置的温度传感器可直接测量芯片温度,结合MakeCode图形化编程环境,无需复杂电路知识即可快速构建应用。本项目以温度测量为切入点,通过“感知-处理-显示”的经典物联网逻辑,演示了如何使用图形化积木块实现数据的实时采集、逻辑判断(如阈值报警)以及交互反馈。这种

weixin_34268579的博客 463

蓝牙GAP(通用访问配置文件)学习

蓝牙GAP(通用访问配置文件)学习 芯片:nrf52832 SDK版本:nRF5_SDK_15.3.0_59ac345 一. GAP的作用 通用访问配置文件,该profile是保证不同蓝牙产品可以互相发现对方和建立连接的. 定义蓝牙设备如何发现和建立与其他设备的安全(或不安全)连接. 处理业务:询问、命名、搜索、链路建立、信道和连接建立. 它是所有其他配置文件的基础,它定义了在蓝牙设备间建立基带链路的通用方法. 必须在所有蓝牙设备中实施的功能. 发现和链接设备的通用步骤. 基本用户界面术

andy 的专栏 2058

[专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文...

    综述先看这里   第一节的1.1简单介绍了DC/DC是什么;   第二节是关于DC/DC的常见的疑问答疑,非常实用;   第三节是针对nRF51822这款芯片电源管理部分的DC/DC、LDO、1.8的详细分析,对于研究51822的人很有帮助;   第四节是对DC/DC的系统性介绍,非常全面;   第五节讲稳压电路的,没太多东西,可以跳过;   第六节讲LDO的,包含LDO和...

weixin_33872660的博客 1264

开关电源环路补偿--开关电源进阶知识补充1

笔记 一 . 做开关电源环路补偿时候为了使得环路更加稳定。 1 .-- > 希望开关电源的相位裕量在45° 以上, 2. – > 希望开关电源的增益裕量在10db 以上 3. – > 希望开关电源增益曲线在过0db 时候以20db /dec 斜率下降(体现1个极点) 4. – > 希望开关电源补偿之后的带宽达到开关频率的是1/5 ~1/10,用以原理开关电源的开关噪音。 左边图示电源瞬态拉载和释放负载的时候输出电压存在明显的振铃,说明这个目前的环路相位裕量(phase m

qq_29776365的博客 1万+

(GCC)STM32基础详解之全局资源的使用

在使用一个共享的全局资源时,多个地方修改这个资源可能会引发问题。可以使用原子操作、关闭中断或者屏蔽中断解决。它们各有利弊:1.原子操作并不一定是一条指令,而可能是很多条指令,只是通过独占访问等实现,所以原子操作可能更加耗时,对于时间敏感的地方需要衡量是否会影响功能。但是好处是它不对其他中断有影响,比如这个例子中的定时器中断,它的响应并不会被延迟。2.关闭所有中断简单粗暴,但在实际项目中,可能使用了很多中断,并不是所有中断都可以随意关闭,有些中断被关闭可能引发一些问题。.........

飞临云的博客 2063

基于GIS的生态安全网络格局构建(附练习数据下载)

基于GIS的生态安全网络格局构建(附练习数据下载)

qq_43173805的博客 3121

unity转微信小游戏:UI大小设置

unity转微信小游戏:UI大小设置

会潜水的小火龙的博客 3266

从零构建Tiny BLE设备:基于nRF51822的蓝牙低功耗开发全解析

蓝牙低功耗(BLE)技术是物联网和可穿戴设备实现无线通信的核心协议,它通过优化的协议栈和功耗管理,在保证可靠连接的同时极大延长了设备续航。其工作原理基于GATT(通用属性协议)结构,采用客户端-服务器模型进行数据交互,并通过广播、连接参数协商等机制实现灵活组网。该技术的核心价值在于为电池供电的嵌入式设备提供了稳定、低功耗的无线连接方案,广泛应用于智能家居、健康监测、传感器网络等领域。本文以nRF51822芯片和CMSIS-DAP调试器为例,深入剖析如何从硬件选型、固件开发到功耗优化,完整实现一个微型BLE节

337

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 291

Kubernetes Handbook 云原生社区指南:成为 CNCF Ambassador 的完整路径与大使权益全解析

> 导读:本文基于 kubernetes-handbook 仓库 [cloud-native/cncf-ambassador.md](https://link.gitcode.com/i/94740e386957be6f797a6ceec040a253) 展开,系统讲解 CNCF Ambassador(CNCF 大使)这一云原生社区角色的定位、成为路径与权益。你将掌握从创建 meetup、申请 C

gitblog_00052的博客 187

GAMIT基线解算实战:从RINEX数据准备到精度报告解读(附2024年tables更新攻略)

本文详细解析了2024年GAMIT基线解算全流程,从RINEX数据准备到精度报告解读,特别更新了tables配置攻略。涵盖工程目录设计、数据预处理、关键配置文件更新及基线解算策略优化,帮助用户掌握高精度GNSS数据处理技术,提升解算效率和结果可靠性。

weixin_42520374的博客 305

Euro-NCAP-HWA测试流程中文版V1.1(2023发布)

在本协议中,使用了以下术语:Vehicle undertest (VUT) – 指根据本规程测试的车辆,车上有碰撞前的碰撞缓解或避免系统Global VehicleTarget (GVT) – 指本协议中使用的车辆目标,其定义见TB025—Euro-NCAP全球车辆目标规范v1.0辅助其他车辆(SOV)--指最新的 AEB VRU 测试规程中定义的 "大型障碍车辆"(而非机器人控制的平台),用于本规程中的 "切出 "测试。Time To Collision (TTC) – 指在VUT碰撞GVT之前的剩余时间

小明师兄的博客 595

OsChina上博客索引

OsChina上博客索引 0065-ffmpeg命令行参数 0064-nRF51822之BootLoader 0063-FM收音机芯片TEA5767 0062-存储器器件选型 0061-信号处理器件选型 0060-常用APDU指令响应码 0059-Ja...

145

yolov8涨点系列之替换幽灵卷积GhostConv

yolov8涨点系列之替换幽灵卷积GhostConv

zhang1379的博客 3564

无电池BLE信标:能量收集驱动的低功耗物联网节点设计全解析

能量收集技术正在改变物联网设备的供电方式,它并非替代电网或电池,而是通过收集环境中微弱的光、热、振动能量,实现设备的间歇式自主运行。其核心原理在于能量管理芯片将低电压源升压存储到超级电容中,当电压达到阈值时系统瞬间启动完成任务后立即断电,从而让设备在无电池状态下长期工作。BLE协议凭借毫安级峰值电流与广播机制,成为这种能量受限场景的理想选择,搭配nRF51822等低功耗SoC可有效控制能量预算。该技术适用于智能家居、工业监测等无需频繁更换电池的传感器节点场景。本文以室内光伏供电的无电池BLE信标模块为例,详

weixin_30607029的博客 466

YOLOv11 改进策略之 Conv 篇:基于 C2fC 与 RepC_SPELAN4 的性能跃迁教程

某工业质检场景中,采用本文改进模块的 YOLOv11 模型,对微小零件缺陷的检测准确率提升 22%;YOLOv10 提出的 C2fC 模块与 RepC_SPELAN4 结构,是针对特征融合与卷积效率的突破性设计,掌握它们,你就能让自己的 YOLOv11 模型在精度与速度的平衡上实现“质的飞跃”。别再让“模型精度不足”成为你的瓶颈——现在就动手修改代码,让你的 YOLOv11 模型在特征提取与检测效率上实现质的飞跃,用技术实力证明你的 AI 研发能力!中的卷积层为 RepC_SPELAN4。

m0_71589036的博客 97

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

micro:bit MicroPython API 速查手册:20+ 模块从 microbit 到 utime 的完整参考清单

本手册面向 BBC micro:bit 板卡,提供 MicroPython 版 **micro:bit MicroPython API 速查**:从核心 `microbit` 模块到 `utime`、`machine`、`radio`、`speech` 等 20+ 内置模块,一页掌握所有可用对象、方法与常量。无论你是第一次接触 micro:bit MicroPython,还是想快速查阅 `disp

gitblog_01157的博客 857

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

一颗CR2032纽扣电池如何支撑DIY标签用1年以上?NinjiaTag低功耗优化实战:从40μA到10μA

NinjiaTag 是一个 DIY 定位标签 开源项目:用一颗普通的 **CR2032 纽扣电池** + 低成本蓝牙模块,就能组装出接入 FindMy 网络的防丢 Tag,还能在 Web 端永久回溯轨迹。对 DIY 标签来说,**低功耗优化**就是续航本身——本文带你把平均电流从 40μA 压到 10μA,让一颗纽扣电池稳稳用上 1 年以上(理论可达 875 天)。🔋 [![2032 圆形 D

gitblog_00056的博客 222

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Arduino无RTC数字手表:从内部时钟校准到低功耗系统设计

实时时钟(RTC)是嵌入式系统中实现精准计时的常见方案,其核心原理是依赖外部高精度晶振提供稳定的时间基准。然而,深入理解微控制器内部时钟源的工作原理与校准方法,对于掌握嵌入式系统底层设计至关重要。通过软件算法对内部RC振荡器进行误差补偿,不仅能降低硬件成本与体积,更能锻炼开发者在时钟管理、电源优化和系统整合方面的综合能力。这种技术思路在追求极致紧凑与低功耗的可穿戴设备、IoT传感器节点等应用场景中具有重要价值。本文以Arduino数字手表项目为例,详细探讨了如何利用内部时钟结合校准算法实现可靠计时,并深入讲

weixin_34341117的博客 441

理解EnterCriticalSection 临界区

                          理解EnterCriticalSection 临界区 http://blog.youkuaiyun.com/gundam_00/article/details/5112662   通俗解释就像上厕所: 门锁了,就等着,等到别人出来了,进去锁上,然后该干什么干什么,干完了,把门打开 门没锁,就进去,锁上,然后该干什么干什么,干完了,把门打开

朱韦刚(zhuweigangzwg)的技术博客 1867
上一篇: 2018-1-1
下一篇: H264 文件_笔记
benjamin721
博客等级 码龄14年 18粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值