自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 当指针作为局部指针变量时的注意事项

情形1:uint8_t func(uint8_t a){ uint8_t temp =0 ;/*用输入变量a计算temp的值*/ return temp ;}这样是OK的,因为返回的是temp的副本情形2uint8_t *func(uint8_t a){ uint8_t temp =0 ;/*用输入变量a计算temp的值*

2017-11-28 13:30:23 1227

原创 OAD(OTA)完成后,蓝牙设备没有重启的原因

CC2640在OAD(OTA)完成以后,会主动断开蓝牙连接,然后重启。但是测试时会发现有时OAD成功,但是CC2640没有重启。需要手动重启CC2640.后来找到原因:手机app收到蓝牙的断开蓝牙连接通知,但是依然持有character,依然保持蓝牙连接。此时手机app主动把蓝牙断开,CC2640就会正常重启。

2017-11-28 09:09:29 651

原创 CC2640的Flash操作

在CC2640里,osal_snv_write的API函数是基于ICall层来操作的。因此,需要把flash操作和simplepherial的task绑定。在上述task初始化时,增加FlashOperationMessage_RegisterAppCBs(&user_flashOperationMessageCBs);在变量设初始值时,设定static flashOp

2017-11-21 10:56:59 1587

原创 Andriod8.0扫描不到BLE设备的原因

昨天尝鲜升级了一次手机系统,把系统升级到了Android8.0。今天测试的时候意外发现扫描不到自己的蓝牙小设备(假如定义为设备A)。描述如下:1. Android8.0 + nrf connect扫描不到设备A,但是可以正常扫描到苹果手表和小米手环2.2. Android8.0+系统蓝牙也扫描不到设备A,但是可以正常扫描到苹果手表和小米手环2.3. Android(其他版本)+ n

2017-11-16 16:44:10 10725 12

原创 获取寄存器地址的方法

如果需要使用TX1的DMA传输,就会涉及到配置DMA的外设地址。在这里,外设地址应该是USART1的DR寄存器的地址。可是如何获取该寄存器的地址呢?现在实测了3种方式,都可以实现。方法1:直接查询手册中寄存器映像(map),USART1的DR地址为0x40013804方法2:手册中查看,DR寄存器的偏移地址为0X04,那么USART1的DR地址可以写成(USART1

2017-11-16 11:21:30 9664

原创 LL库通过串口+DMA方式发送数据

在RM0038(L151的手册)中的Chapter 27.3.13 Continuous communication using DMA章节有配置的方式和顺序:Transmission using DMA:DMA mode can be enabled for transmission by setting DMAT bit in the USART_CR3 register.

2017-11-16 10:46:52 12971 2

原创 RTOS下不同任务传值的方式

开发ios的同事反馈说,最近一版的蓝牙连接时,20次里面会有1~2次回复“未识别的命令”。虽然经过半天的查找和测试,ios的code里面改动了些东西,概率有了显著的下降,但是50次依然有1~2次回复“未识别的命令”。后来ios的code做了容错处理,问题消失,但是我心里依然明白:问题并没有从根本上解决。我没法对这个问题做评估,最坏的结果是这个小bug还有可能会危害到整个系统。未完待续

2017-11-14 17:00:00 1041

原创 如何使用Stm32CubeMX和LL库实现窗口看门狗

窗口看门狗对时间的要求比独立看门狗更加严格。必须在设定的上限时间和下限时间之间喂狗,如果喂狗时间高于上限时间或者低于下限时间,都会导致看门狗触发重启机制。其中下限时间是系统固定的,为0X40。上限时间是用户可以定义的,大于0X40同时小于0X7F即可。     在Stm32CubeMX里面,WWDG的上限时间为:WWDG window value,WWDG不断减少的Couner名为:WWDG

2017-11-13 13:55:18 2901 1

原创 如何让stm32L151工作在使用LL库的情况下 ,运行在32M时钟

Stm32L151是用来做低功耗应用的,该芯片虽然也是M3的核,但是最大只能工作在32M(比f103的64M(HSI)和72M(HSE)相差巨大)第一次使用Stm32CubeMX配置该芯片,生成工程后竟然无法执行。时钟树配置如下图调试断点后,判断程序死在了这段代码位置void SystemClock_Config(void){ LL_FLASH_SetLatency(L

2017-11-10 17:06:45 3306

原创 STM32CubeMX+FreeRTOS实验---使用os timer

在STM32CubeMX的FreeRTOS配置中,使能FreeRTOS的Software Timer功能修改timer的名称及callback名称等可以看到,在生成工程的main.c文件的main函数中,有以下code /* Create the timer(s) */ /* definition and creation of myTimer01 */ osTime

2017-11-10 10:34:04 9968

原创 指针作为局部变量的注意事项

参见http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183962.html所述。#include //此函数中d也是个局部变量,函数执行完自动销毁,但是指针分配的空间不会被自动回收,除非程序员delete掉。//所以这个可以正常输出。char *a(){ char *d = "ZET";//这个初始化的一种形式,相当

2017-11-10 09:11:01 5409

原创 STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task

假如有两个Task,行为类型,只是个别参数不一样。那么可以使用同一个task,来实现两个实例。这两个实例是相互独立的:Each created instance will execute independentlyunder the control of the FreeRTOS scheduler.   以两个LED的task任务为例子,假设LED1和LED2都是每1s变换一次。那么,建

2017-11-08 16:14:20 12870

原创 Stm32cubeMX+FreeRTOS的Flash占用情况

情况1:1. 使用两个空Task+1个timer+1个queue2.10 404 bytes of readonly code memory 80 bytes of readonly data memory 5 752 bytes of readwrite data memory

2017-11-07 15:57:39 2924

原创 芯片选择LL库还是HAL库

LL库和HAL的选择主要根据两点:1. ST官方是否支持2. 芯片Flash和SRAM是否宽裕。要查看官方是否支持,可以执行以下操作执行:1. 下载安装最新的STM32CubeMX,选择芯片型号后,Project-》Setting-》Advanced Setting2. 查看相关驱动的下拉菜单,看是否有LL选项,如果有的话,就可以选择,如下图,这个芯片使用是STM32F

2017-11-07 10:09:20 11019

原创 使用Stm32CubeMX+FreeRTOS的组合

使用STM32CubeMX来生成带MiddleWare的FreeRTOS的代码

2017-11-07 09:53:11 15473

Setup_JLink_V502f

Setup_JLink_V502f.zip segger最新的jlink驱动

2015-10-26

空空如也

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

TA关注的人

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