自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (12)
  • 收藏
  • 关注

原创 IAR下 __no_init ram nRF52810 软复位不丢时间戳 ram 保持

需求 :nRF52810 软复位不丢时间戳1、复位类型判断参考文档:nRF52810_PS_v1.3.pdf if(0 == (0x0005000f & nrf_power_resetreas_get())){ g_timeStamp = 0; NRF_LOG_DEBUG("--> HardWare reset"); }else{ NRF_LOG_DEBUG("--> SoftWare reset"); }2、设置app工程

2020-06-11 19:52:22 1085

原创 Serial studio 串口数据可视化工具教程(安装+使用)

serial studio 支持多种协议和可自己定制的界面。

2024-03-04 11:26:52 880 3

原创 基于沁恒微 ch643q 多通道采集 adc 驱动层实现

ADC是12bit精度 参考电压就是供电电压 我用usb供电所以参考电压就是5v。给通道0的引脚接入0.4v 电压 验证打印出来ad值为330 左右。

2024-02-28 16:37:58 372

原创 泰凌微方案键鼠套装

验证鼠标500回报率同时 键盘12ms间隔发 四万个四位数 未丢键。键盘自动发数字测试代码。

2024-01-16 16:42:32 417

原创 泰凌微Telink pwm的一个坑

telink pwm suspend 冲突

2024-01-03 14:05:09 418

原创 基于nxp的flash读写驱动实现

以下代码在lpc5528上验证正常,结尾有验证函数。

2023-12-19 17:53:43 444

原创 一个简单循环队列的实现

在线验证链接:https://onlinegdb.com/gpGlm4BV0。一个简单循环队列的实现。

2023-12-07 20:24:51 425

原创 充电灯 低电灯共用一个 LED

充电灯 低电灯共用一个 LED

2022-10-23 18:54:43 1062 1

原创 单向链表节点的逆序反转

#include <stdio.h>typedef struct node{ int val; struct node *next;}node;void reverse(node * pHead){ node * pCur, * pNewHead, * pTemp; if(NULL == pHead || NULL == pHead->next) return; pNewHead = pHead; pCur = pHead->next; whil

2022-01-09 22:40:35 236

原创 对称加密、非对称加密、签名验签

对称加密通信,双方通信用同一个密钥对数据加密和解密。+++++++++++++++++++++++++++++++++++++++++++++++++A ----> 同一个密钥加密的数据 >---- BB 用同一个密钥解密B ----> 同一个密钥加密的数据 >---- AA 用同一个密钥解密+++++++++++++++++++++++++++++++++++++++++++++++++非对称加密有两个密钥公钥和私钥。公钥只能加密不能解密,只有其对应私钥可用来解密。

2021-03-18 11:19:40 579

原创 stm32 wb55 dc-dc供电 蓝牙连接不稳定

开发过程中发现Vin 超过 3.85v,蓝牙连接不稳定。反馈脚与Vout之间添加一个 5nf电容。

2021-03-16 14:23:35 468

原创 nrf 52xxx RS485 MODBUS-RTU

今天开始攒代码了,,, nrf 52xxx MODBUS2毫秒定时器判断一帧数据接收完成void uart_chk_rcv_over_timer_handler(void *p_text){ ++g_run2MsTick; //如果正在接收 且 空闲时间大于1个tick 认为接收一帧结束 if((g_uartCrl.is_rcv_busy == UART_RCV_BUSY) \ && (SYS_BUSY_MS > (2 + g_uartCrl.r

2021-01-13 14:05:19 799 2

原创 STM32串口发送数据卡死

记录一个开发日常。DMA发送串口数据”卡死“使用DMA发送串口数据记得修改对应DMA中断处理函数。否则程序异常跳转跑飞。

2021-01-05 17:50:38 1998 2

原创 引用了声明的头文件仍然报警告declard implicitly

记录一个日常今天用keil编译完被报了一个警告 declard implicitly截图可看出来我有声明但是仍然报了警告:隐式声明原因是调用该子函数的函数未被使用。

2020-12-24 19:15:54 1103 1

原创 1kHZ基频 1毫秒定时器 IO口 模拟pwm 呼吸灯

void GREEN_OFF() { /* 灭灯 */ }void GREEN_ON() { /* 点灯 */ }#define DUTY_RATE_NUM 44#define DURATION_TIME 50static uint8_t count = 0; // 小周期计时static uint8_t count2 = 0; // 小周期计次static uint8_t steppingDir = 0; // 变化方向控制static uint8_t s_dutyIndex =

2020-11-09 11:27:29 683

原创 nRF 52820 高压模式供电烧录失败问题

nRF 52820 高压模式供电 默认输出1.8v 需要在初始化设置输出电压#define UICR_REGOUT0_VOUT_1V8 (0UL) /*!< 1.8 V */#define UICR_REGOUT0_VOUT_2V1 (1UL) /*!< 2.1 V */#define UICR_REGOUT0_VOUT_2V4 (2UL) /*!< 2.4 V */#define UICR_REGOUT0_VOUT_2V7 (3UL) /*!< 2.7 V */#de

2020-11-05 11:33:17 571

原创 记一个小bug:布尔变量取反不能用 ~ 符号

记一个c的小bug:布尔变量取反不能用 ~ 符号{ static bool cnt = false; cnt = ~cnt; switch(cnt) { case 0: NRF_LOG_DEBUG("a cnt[0x%x] = false.",cnt); break; default: NRF_LOG_DEBUG("a cnt[0x%x]

2020-10-28 16:21:02 1960 2

原创 CMSIS-RTOS v2 信号量api 学习

Keil官网 CMSIS-RTOS v2 信号量章节的网址功能: 创建并初始化一个信号量参数 max_count : 最大可获取的值参数 initial_count : 可获取的初始值参数 attr : 信号量的相关属性(名字,大小 ...)返回值: 后面被用来释放和获取的信号量句柄osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);

2020-09-22 10:12:18 1674

原创 nrf52xx 电池电压ADC低功耗滑动滤波采样

sdk_config.h 修改宏SAADC_ENABLED & NRFX_SAADC_ENABLED#include "nrf_drv_saadc.h"#include "nrfx_saadc.h"#include "nrf_saadc.h"/**sdk_config.h 修改宏*SAADC_ENABLED & NRFX_SAADC_ENABLED*///阻塞模式不需要回调事件处理获取采样值void saadc_evt_callback(nrf_drv_saadc_evt

2020-09-05 10:14:22 1624 5

原创 CMSIS-OS2 api 线程标志学习

后续随进度会更新。。。–线程标志–线程标志(和事件标志接近)可用于进程间通信。比如笔者做的蓝牙指纹锁项目,蓝牙收到消息 给指纹任务设置一个线程标志,指纹任务等到标志不再阻塞根据线程标志执行对应指纹任务(注册,删除,,,)。线程标志设置函数:uint32_t osThreadFlagsSet ( osThreadId_t thread_id,uint32_t flags ) thread_id:是线程IDflags:是线程标志,根据需要设置线程标

2020-08-29 10:42:22 646

原创 keil 编译优化等级低 导致flash操作失败

记一个坑之前想用V6的ARM Complier,尝试未果,,,这个过程不提了。然后切回V5的版本,结果没注意编译优先级变成了 -O1,导致程序code段占的flash空间大了一倍。后面操作flash就操作到了code段于是失败。-O1 优化生成的map文件-O3 优化生成的map文件...

2020-08-25 16:35:22 634 1

原创 STM32WB55 ADC获取电压值

McuAdc.c#include <stdio.h>#include <stdint.h>#include "McuAdc.h"ADC_HandleTypeDef hadc1;/* Variables for ADC conversion data */__IO uint16_t uhADCxConvertedData = VAR_CONVERTED_DATA_INIT_VALUE; /* ADC group regular conversion data

2020-08-20 08:53:55 774

原创 STM32WB55 freertos 低功耗

修改app_conf.h打开低功耗支持宏/** * When set to 1, the low power mode is enable * When set to 0, the device stays in RUN mode */#define CFG_LPM_SUPPORTED 1关闭打印控制宏/** * keep debugger enabled while in any low power mode when set to 1 * should be set t

2020-08-19 11:06:23 1202

原创 STM32WB55 RTC万年历

#ifndef __RTC_H_#define __RTC_H_#include <stdint.h>#if 0 用外部低速时钟作为时钟源#endif#define RTC_CLOCK_SOURCE_LSE#ifdef RTC_CLOCK_SOURCE_LSI#define RTC_ASYNCH_PREDIV 0x7C#define RTC_SYNCH_PREDIV 0xF9#endif#ifdef RTC_CLOCK_SOURCE_LSE#de

2020-08-18 14:21:44 337

原创 记一个日常 keil5 MDK 的异常提示Note: object file renamed from “xxx.o“ to “xxx_1.o“

有时候修改一个源文件的路径可能会忘记删除原来所在group的文件。这时keil会有提示Note: source file 'xxx.c' - object file renamed from 'xxx.o' to 'xxx_1.o'.经过测试, 删除重复文件并Rebuild都解决不了。必须在左边Project栏下选中文件右键 Options for file xxx.c取消“Include in Target Build”旁边的勾编译一次这一次编译会报错不要管错误,然后勾上这个勾再编译一次就

2020-08-05 16:27:09 14750 22

原创 一个开发日常error: #20: identifier “SPI_HandleTypeDef“ is undefined

最近开发跑rtos带蓝牙的stm32wb55。开发st的方便在于有cube可以生成代码,可是有中间层的情况就支持的不够好。比如既带rtos又带蓝牙协议栈就无法用cube生成可以编译成功的代码。官方例程的readme的描述也说明了这一点。所以我现在只能手动修改不能享受cubeMX的便捷了。今天手动添加spi,结果出现一个报错通过全局搜索头文件关键词 stm32wbxx_hal_spi.h发现需要取消对应模块的注释。...

2020-08-04 19:49:17 4692 4

原创 STM32WB55xx 任意长度和任意地址写入的 Flash 驱动

/** ****************************************************************************** * File Name : McuFlash.c * Description : Flash driver for STM32WB55xx * @author : zxk *******************************************************

2020-07-29 09:03:23 839

原创 go 语言实现CRC16-CCITT

package mainimport ( "fmt" "bytes" "encoding/binary")var MbTable = []uint16{ 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393

2020-07-23 16:30:52 1476 1

原创 STM32WB 删除指定广播类型 数据

/* Delete Ad Type Tx Power */ ret = aci_gap_delete_ad_type(AD_TYPE_TX_POWER_LEVEL); if(BLE_STATUS_SUCCESS == ret) { APP_DBG_MSG("Successfully Delete Tx Power \n" ); } else { APP_DBG_MSG("Delete Tx Power Fail\n" ); }

2020-07-20 18:55:36 244

原创 STM32WB55 广播间隔

广播间隔以0.625ms为单位。app_conf.h#define CFG_FAST_CONN_ADV_INTERVAL_MIN (0x80) /**< 80ms */#define CFG_FAST_CONN_ADV_INTERVAL_MAX (0xa0) /**< 100ms */#define CFG_LP_CONN_ADV_INTERVAL_MIN (0x640) /**< 1s */#define CFG_LP_CONN_ADV_INTERV

2020-07-20 15:44:02 429

原创 STM32WB55 获取蓝牙链接过程协商的MTU值

1、调用aci_gatt_exchange_config这个api可以产生mtu交互事件。/** * @brief Perform an ATT MTU exchange procedure.When the ATT MTU exchange procedure is completed, a @ref aci_att_exchange_mtu_resp_eventevent is generated. A @ref aci_gatt_proc_complete_event event is a

2020-07-18 21:24:13 910

原创 STM32WB55设置扫描广播包数据

/* Update Scan data */ { uint8_t scan_data[31] = { 0x14,/*len = 1(ad type) + 2 (manuf id) + x(payload data)*/ AD_TYPE_MANUFACTURER_SPECIFIC_DATA,/*type*/ 0x7e, 0xff,/*manuf id*/ 0x00/*payload data*/ }; ret = hci_le_set_scan_response_data(

2020-07-17 08:43:45 612

原创 STM32WB55 在BLE_HeartRateFreeRTOS例程基础上修改成带rtos的p2ps透传服务

STEP1\ 通过对比p2ps和HeartRateFreeRTOS例程增删文件BLE_HeartRateFreeRTOS例程原目录替换成p2p_server_app.c修改内容1、 增删文件1.1、Application/STM32_WPAN/app/ 目录下添加一文件:p2p_server_app.c1.2、Application/STM32_WPAN/app/ 目录下删除两个文件:1\ dis_app.c 2\ hrs_app.c2、 序列器调度改成rtos任务2.1 添加代码

2020-07-16 18:42:43 1257 2

原创 记录一个wb55例程的坑: No target connected 链接st-Link失败

烧录完例程 BLE_HeartRateFreeRTOS 后,keil烧录之前ok的程序都不行。keil 窗口一直打印 Target Dll has been cancelled弹窗找不到设备:No target connected原因:例程的代码动到了烧录的引脚

2020-07-14 15:57:27 392 2

原创 STM32WB55 蓝牙不定长数据读写

1、设置BLE需要通信的最大长度添加代码:发送函数/* * send notify data. */tBleStatus bleSnd(uint16_t len, uint8_t *data){ tBleStatus result = BLE_STATUS_INVALID_PARAMS; result = aci_gatt_update_char_value(aPeerToPeerContext.PeerToPeerSvcHdle,

2020-07-09 20:00:33 1368 2

原创 STM32WB55 用 cubemx 生成串口打印

1、设置Connectivity2、带蓝牙工程的打印配置添加用户代码a.添加头文件 “app_debug.h”/* USER CODE BEGIN Includes */#include "stm32_seq.h"#include "app_debug.h"/* USER CODE END Includes */b.添加初始化 APPD_Init();/* Initialize all configured peripherals */ MX_GPIO_Init(); M

2020-07-09 15:01:53 675

原创 WB55 低功耗

#define CFG_LPM_SUPPORTED 0

2020-07-09 09:43:22 383

原创 STM32CUBE 生成STM32WB55XX带 BLE 的工程

时钟配置外部高速晶振给晶振使用使能RTC中断使能RF使能BLEconfig添加代码修改广播名测试查看用nrf connect查看

2020-07-08 17:07:12 1383 6

原创 nrf52xx 使能打印

使能log// <e> NRF_LOG_ENABLED - nrf_log - Logger//==========================================================#ifndef NRF_LOG_ENABLED#define NRF_LOG_ENABLED 0//1#endif// <h> Log message pool - Configuration of log message pool使能RTT// <

2020-07-08 11:56:04 331

原创 CUBE 配置 stm32wb55 ble蓝牙参数

打开cube help文档

2020-07-08 09:54:23 2044

MinGW 安装好的文件夹压缩包。

MinGW需要上外网才能安装成功,可以用安装好的文件夹替代。

2021-02-23

MODBUS调试助手

MODBUS调试工具

2021-01-15

MODBUS 通信协议

14页介绍涵盖历史和收发示例,适合快速入门了解 MODBUS rtu, ascii, tcp格式协议

2021-01-13

STM32WB55_Debug.rar

用cube 生成 stm32wb55 带 ble 蓝牙功能的例程无其他外设功能,广播名为“STM32WB”。带串口打印。

2020-07-09

STM32WB55_TEST.rar

用cube 生成 stm32wb55 带 ble 蓝牙功能的例程无其他外设功能,广播名为“STM32WB”。

2020-07-08

wb55xx_uart_dma_rxidle_txcplt_sem.rar

stm32wb55 cube生成工程 freertos 二值信号量 + 串口接收空闲中断+dma传输完成中断

2020-06-19

wb55_uart_dma_idle.rar

stm32wb55 cube 串口不定长接收 freertos+二值信号量+dma+空闲中断+串口重定向

2020-06-19

ISO14443-3.rar

智能卡与读卡器数据传输协议; ISO14443-3:2000(E)原版协议;

2020-05-14

nRF52810_fstorage.rar

Nordic 52810 使能协议栈的工程 用fstorage的方式操作flash的一个例程

2019-08-14

moli_fp_driver.rar

魔力FPM083指纹模块的驱动文件,包换驱动函数和单元测试函数,注释详细。

2019-07-05

SEGGER.rar

嵌入式开发常用串口打印调试信息,有时串口资源不够用,我们使用jlink 打印。网上大部分教程需要swo脚,现提供一种只需要仿真口打印的方法。

2019-07-04

固态电子物理学基础复习提纲

基泰尔固体物理学导论前八章总结提要,可作为 本科固态电子学物理基础期末复习提纲。

2015-06-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除