分类:嵌入式

自己在嵌入式开发的经验总结

STM32L0擦写EEPROM 无法执行代码?

STM32L0擦写EEPROM 无法执行代码?
在stm32L071cb 这个型号的mcu带了6k的eeprom,项目中正好需要用到存储一些参数,借用现成的何乐而不为呢 在测试代码中运行写入再次读取数据保证是正确的,也没有其他副作用。但是到真正派上用场的时候却挂了。在一上电的初始化过程中我会存储一些参数,而从程序打印的...

DK45 2年前 (2019-11-19) 3393℃ 0评论 7喜欢

Freertos printf可重入的问题

Freertos printf可重入的问题
调试程序时候常用printf来作为调试日志输出,方便定位问题所在位置。但最近出现一个现象程序运行过程中会出现莫名的异常死机。 但是在死之前有个征兆,观看打印的日志,有两条信息穿插打印的现象。所以才想起来去考虑是不是printf引起的。 在整个项目中我运行的有8个任务...

DK45 2年前 (2019-11-07) 4175℃ 0评论 9喜欢

STM32 CAN 发送的简单测试

STM32 CAN 发送的简单测试
can接口相对是一种常用的串行接口,但是不像spi、i2c、uart等接口都有主从的关系,can可以任何一个节点主动发送数据,并且假如出现总线冲突会有硬件来处理。 can和rs485又有些类似,都是把ttl信号转换成了差分信号。所以在stm32 使用can的时候会有一个c...

DK45 2年前 (2019-10-28) 7286℃ 21喜欢

485 发送的同时如何接收数据

485 发送的同时如何接收数据
485是通过两根差分线来传输数据,所以总线上要么是发送的数据,要么是接收的数据,所以标准两线485是属于半双工的工作模式。既然是半双工,发送的同时又接收数据,这个问题岂不是很奇怪,并且这样的实现又有什么意义。 先看下到底是基于什么场景我才想到去验证这么一个问题。标准485...

DK45 2年前 (2019-10-08) 4826℃ 10喜欢

stm32L0 +freertos tickless低功耗

stm32L0 +freertos tickless低功耗
嵌入式实时操作系统运行中都会有一个系统时钟节拍,类似于人的心脏来驱动整个系统的运行。运行在arm cortex-m内核的单片机上的系统时钟用的最多的就是systick(属于arm内核带的)。使用stm32cubemx可以直接生成移植好的freertos工程,默认也会使用syst...

DK45 2年前 (2019-09-26) 5384℃ 18喜欢

STM32L0 ADC DMA多通道多次采集

STM32L0 ADC DMA多通道多次采集
之前写过一篇非dma方式adc多通道采集的文档:https://www.eemaker.com/stm32cubemxadc.html 不过之前是基于stm32F1系列来操作的。当使用L0系列按照之前的操作步骤操作并没有成功,so只能用中断或者DMA的方式来实现。L0相比...

DK45 2年前 (2019-08-14) 6336℃ 8喜欢

52832带softdevice工程移植freertos

52832带softdevice工程移植freertos
基于BLE应用加上freertos的应用,官方只提供了一个例子,针对自己的应用使用freertos具体需要添加哪些文件执行哪些步骤没有很明确的参考说明,so特此整理一份。 本篇硬件基于nrf52832-DK开发板。SDK基于V15.3版本。 添加freertos需要...

DK45 2年前 (2019-07-09) 5400℃ 14喜欢

使用freertos如何确定分配堆栈空间大小

使用freertos如何确定分配堆栈空间大小
运行freertos系统的大部分都是资源有限的MCU,所以对于ram我们都要考虑尽量的节省,避免资源浪费,从而也可以针对项目选择性价比更好的mcu。 首先要配置freertos的堆(heap)空间,创建任务我们还需要为每个任务分配栈(stack)空间,那么针对freert...

DK45 2年前 (2019-07-01) 13071℃ 25喜欢

DAPLINK编译使用python2还是python3

DAPLINK编译使用python2还是python3
在DAPLINK进行源码编译的时候,需要依赖python的环境,来执行一些工具脚本。那么问题就来了,马上python2支持就要到期了,到底我使用2还是3? 如果你还不清楚daplink的编译流程可以查看我之前的文章:https://www.eemaker.com/...

DK45 2年前 (2019-06-30) 3955℃ 10喜欢

一个互斥量引发的宕机

一个互斥量引发的宕机
嵌入式实时操作系统一方面让mcu更高效的利用起来,另一方面让开发者可以把不同的软件功能模块进行解耦,更快捷清晰的开发整个项目。 但是用的好就是得力助手,用不好就是杀手。因为操作系统将会面临裸机下面更多的资源重入问题,以及内存分配,优先级分配,IPC通信等等需要谨慎...

DK45 2年前 (2019-06-25) 2651℃ 3喜欢