- 博客(29)
- 收藏
- 关注
原创 BLE UUID
1.1 UUID"GATT层”中定义的所有属性都有一个UUID值, UUID是全球唯一的128位的号码, 它用来识别不同的特性。1.2 蓝牙技术联盟UUID蓝牙核心规范制定了两种不同的UUID,一种是基本的UUID, -种是代替基本UUID的16位UUID。所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB为了进一步简化基本UUID, 每一个蓝牙技术联盟定义的属性有一个唯-的16位UUID,以代替.上面的基本UUI
2020-09-04 11:36:54 298
原创 ble协议栈
1.功能框图Nordic Nrf52系列芯片的协议栈结构图:2.协议栈结构有LL层(链路管理)、HCI(主机控制器接口)、L2CAP(逻辑链路通道适配协议)、ATT(属性)、SM(安全管理)、GATT(通用属性)、GAP(通用可访问规范)2.1 底层:ControllerPhysical Layer, 物理层 简称:PHY用来指定BLE所用的无线频段、调制解调方法等,PHY直接影响...
2020-04-16 20:19:40 607
原创 ble广播基础
1.BLE工作流程1.1 角色主机:发起对从机的连接者(如手机)从机:广播并等待连接(手环等设备)观察者:监听空中广播事件,和主机唯一的区别是不能发起连接,只能持续扫描从机。广播站:可以持续广播,和从机唯一区别是不能被连接,只能广播数据BLE协议栈中没有角色限制,同一设备可以作为主从一体。1.2 广播指每一段时间发送一次广播数据,当从机处以广播状态时才能被主机发现,广播包会在37 ...
2020-04-16 10:09:18 2380
原创 UCOSIII 同时等待多个内核对象
一、相关理论1、UCOSIII只支持同时等待多个信号量和消息队列,不支持同时等待多个事件标志组和互斥信号量。2、当等待到任意一个的时候可以该任务就会进入就绪状态。二、相关API函数1、OS_PEND_DATA数组OS_PEND_DATA pend_muli[3]; pend_muli[0].PendObjPtr= (OS_PEND_OBJ*)&MY_SEM; pend_mul...
2018-12-01 21:00:14 438
原创 UCOSIII事件标志组
一、理论部分1、有时一个任务需要和多个事件同步,此时可以用事件标志组。2、事件标志组的事件可以“与”同步,也可以“或”同步。3、任务和 ISR(中断服务程序)都可以发布事件标志,但是,只有任务可以创建、删除事件标志组以及取消其他任务对事件标志组的等待。4、如果任务在等待过程中时间超时,任务会被重新进入就绪态。二、相关API函数1、定义事件组OS_FLAG_GRP EventFlag...
2018-11-27 22:34:04 859
原创 UCOSIII 内建消息队列
一、相关理论1、如同信号量一样,UCOSIII也可以任务内建消息队列,不仅简化了程序,还提升了效率。2、使用消息队列需开启宏 OS_CFG_TASK_Q_EN3、使用消息队列,创建任务时需设置内建消息队列的大小如 :(OS_MSG_QTY) 2,二、相关API函数1、OSTaskQPend() 等待内建消息队列u8 *num;num=OSTaskQPend( 0, OS_OP...
2018-11-25 21:47:51 598
原创 UCOSIII消息队列
一、相关理论1、消息是指向数据的指针,可以是任务块或者是函数。2、任务的传递是指针传递,不是值的传递,(数据的本身不产生拷贝)。3、UCOSIII对消息的读取可以说(FIFO)先进先出,也可以先进后出(LIFO)。二、相关API函数1、定义消息队列#define KEY_Q_NUM 1 //消息队列长度OS_Q KEY_Msg; //定义一个消息队列2、OSQCre...
2018-11-25 20:57:08 1197
原创 UCOSIII 优先级反转 互斥信号量
一、优先级反转分析(1) 任务 H 和任务 M 处于挂起状态,等待某一事件的发生,任务 L 正在运行。(2) 某一时刻任务 L 想要访问共享资源,在此之前它必须先获得对应该资源的信号量。(3) 任务 L 获得信号量并开始使用该共享资源。(4) 由于任务 H 优先级高,它等待的事件发生后便剥夺了任务 L 的 CPU 使用权。(5) 任务 H 开始运行。(6) 任务 H 运行过程中也要使用...
2018-11-23 15:54:21 963
原创 UCOSIII 信号量 任务同步
一、信号量相关观念1、信号量是一种上锁机制,相关代码运行到被锁代码段,只有获得钥匙才能继续运行。2、信号量分二进制和计数型,二进制:为1时可以使用共享资源,为0时需等待。二进制型信号量一次只允许一个任务使用共享资源。即二进制型信号量主要用于共享资源的保护。计数型:当多个任务同时需要使用共享资源,每个任务请求一次信号量值减1,直至为零,资源被上锁。二、相关API函数1、 OSSemCr...
2018-11-23 11:04:54 828
原创 UCOSIII 软件定时器
一、相关理论1、使用定时器需开启宏 OS_CFG_TMR_DEL_EN 1u2、定时器分辨率由定义的系统节拍频率 OS_CFG_TICK_RATE_HZ 决定 如 OS_CFG_TMR_TASK_RATE_HZ = 100,系统时钟周期为 10ms 1000/100=10ms OS_CFG_TICK_RATE_HZ =200,系统时钟周期为 5ms,定时器的最小分辨...
2018-11-22 21:33:42 320
原创 UCOSIII任务挂起与恢复 时间片轮转调度
一、相关理论某些任务运行一段时间后暂时不需要用到,到后期又会用到,我们不能将其删除,只能将其挂起,等需要时再恢复。二、挂起函数void OSTaskSuspend (OS_TCB *p_tcb,OS_ERR *p_err)p_tcb: 指向任务块p_err: 保存错误码三、恢复函数void OSTaskResume (OS_TCB *p_tcb,OS_ERR *p_err)...
2018-11-22 19:51:34 814
原创 UCOSIII 任务创建与删除
一、编程要点1、初始化相关配置(时钟、中断分组、LED)2、创建开始任务3、在开始任务中创建 任务1、任务2函数4、编写任务函数二、库函数&结构体1、创建任务函数OSTaskCreateOS_TCB *p_tcb, //任务控制块 CPU_CHAR *p_name, //任务名字 ...
2018-11-15 16:37:49 510
原创 RTC时钟
一、编程要点 1、配置RTC时钟 2、开启RTC中断(秒,闹钟,溢出) 3、写中断服务函数 二、RTC基础知识 三、配置RTC的一般步骤 1、使能PWR和BKP时钟:RCC_APB1PeriphClockCmd(); PWR_BackupAccessCmd(); 2、初始化 BKP(备份寄存器) BKP_DeInit(); 3、开启LSE时钟 RCC_LSEC...
2018-09-13 22:50:08 990
原创 CAN总线
一、编程要点 CanTxData.StdId = 0; CanTxData.ExtId = PASS_ID; CanTxData.IDE = CAN_Id_Extended; CanTxData.DLC = 1; CanTxData.Data[0] = 10; CanTxData.RTR = CAN_...
2018-09-02 11:03:24 914
原创 ADC_双重同步规则
一、同步规则同步规则模式 ADC1 和 ADC2 同时各转换一个规则通道组,其中 ADC1 为主, ADC2 为从。 ADC1转换的结果放在 ADC1_DR的低 16位, ADC2转换的结果放在 ADC1_DR 的高十六位。二、触发转换方式ADC1ADC_SoftwareStartConvCmd( ADCx_1, ENABLE); //软件触发使能ADC2ADC_Ext...
2018-08-29 19:20:37 1977
原创 ADC_多通道DAM传输
一、初始化DMA传输 DMA_InitTypeDef DMA_InitStructure; //定义结构体 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //开启DMA时钟 DMA_DeInit(DMA1_Channel1); //决定数据从哪里来到哪里去 DMA_InitStructure.DMA_Periphera...
2018-07-03 18:53:45 1654 1
原创 ADC_单通道输出
一、编程要点1、初始化ADC相关GPIO2、设置ADC工作参数 1)配置ADC工作时钟 2)转换通道顺序和采样时间 3)使能转换完成通道 4)使能软件触发3、配置中断分组4、编写中断服务函数二、结构体&库函数1、ADC 初始化结构体typedef struct{ uint32_t ADC_Mode; /*!< ...
2018-07-01 17:17:43 2017
原创 高级定时器—PWM互补输出
一、编程要点1、初始化TMI相关GPIO2、初始化时基结构体3、初始化比较输出结构体4、初始化死区刹车结构体5、编写呼吸灯函数二、结构体&库函数1、时基结构体 typedef struct{ uint16_t TIM_Prescaler; /*!< 预分频器 配置TIMxPSC 寄存器 */ uint16_t TIM_CounterMode; ...
2018-06-30 16:36:38 5498
原创 基本定时器
一、编程要点1、初始化时基结构体2、配置中断优先级3、写中断服务函数4、写主函数二、定时时间计算定时时间 = 中断周期 * 中断次数 (以1S为例)TIM_Prescaler -> TIMxPSC 寄存器TIM_Period -> ARR (自动重装载寄存器) TIMxCLK 系统时钟CK_CLK = 1/(TIMxCLK/(PSC+1))中断周期 = ...
2018-06-28 11:07:36 678
原创 FATFS_FLASH文件系统
一、编程要点1、将FATFS文件系统添加到工程中2、修改diskio.c 文件接口以及ffconf.h相关宏 3、编写测试函数二、修改diskio.c 文件1、disk_status()函数功能:获取磁盘当前(物理)状态DSTATUS disk_status ( BYTE pdrv /* 磁盘号*/){ DSTATUS stat; switch (pdrv) { case ATA_S...
2018-06-25 22:47:39 1075
原创 I2C_EEPROM 写入多字节 小数
一、写多字节void I2C_WriteMultibyte(uint8_t Addr,uint8_t *pBuffer,uint8_t num); void I2C_WriteMultibyte(uint8_t Addr,uint8_t *pBuffer,uint8_t num) //写入多个字节{ u8 i,temp; temp=num/8; //判断循环次数 for(...
2018-06-17 12:26:24 2262 2
原创 I2C_EEPROM
一、编程要点1、I2C相关GPIO以及外设使能2、初始化I2C结构体(模式、地址、速率等参数)3、编写I2C读写函数4、对EEPROM进行读写二、结构体&库函数1、I2C初始化结构 ( I2C_InitTypeDef )typedef struct{ uint32_t I2C_ClockSpeed; /*!< I2C通讯速率 不高于400 000 */ ...
2018-06-11 22:16:03 548
原创 DMA mtp
一、结构体配置void DMA_mtp_Config(void){ DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); DMA_InitStructure.DMA_PeripheralBaseAddr = USART_DR_addr; //U...
2018-06-08 08:16:04 176
原创 DMA_mtom
一、编程要点1、初始化DMA结构体 数据从哪里来到哪里去 传输数目 传输单位 什么时候传输结束2、清楚相应标志位 3、DMA传输使能二、结构体&库函数1、DMA_InitTypeDefDMA_ InitTypeDef 初始化结构体typedef struct{uint32_t DMA_PeripheralBaseAddr; // 外设地址uint32_t DMA...
2018-06-05 22:24:18 1656
原创 USART_串口回显控制
一、程序内容1、串口发送并回显2、串口发送控制二、库函数1、串口接收数据函数uint16_t USART_ReceiveData(USART_TypeDef* USARTx)dat=USART_ReceiveData(USART1); @brief 串口接收数据 @param USARTx (1-5) @retval 接收的数据三、程序源码vo...
2018-05-20 17:27:54 4480
原创 USART_串口通讯2
一、编程内容1、串口发送两个字节2、串口发送数组3、串口发送字符串二、新增库函数串口发送完成检测函数FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, u16 USART_FLAG)USART_FLAG_TC 用于判断串口数据是否发送完成 USART_FLAG 值USART_FLAG 描述USART_FLAG_CTS CTS 标志位US...
2018-05-20 12:27:57 812
原创 USART_串口通讯1
一、编程要点总结1、初始化USART1相关GPIO2、初始化USART结构体3、 配置中断优先级(NVIC)4、串口使能5、写中断函数二、代码分析1、初始化USART1相关GPIOGPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABL...
2018-05-19 21:22:15 1136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人