自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 stm32f4 HAL库 SDIO 踩坑记录

坑1: cubemx生成的SDIO代码中CMD,D0,D1,D2,D3 引脚 没有配置为上拉.而是浮空,导致的空闲电压不对,导致初始化失败 一系列CMD 命令都无响应. 对相关引脚修改为上拉即可.第二次,CMD 命令初始化完成后 第二次修改,时钟频率为cubemx中设置,宽度也为cubemx中设置.(这里不应该修改为设置,而是继续为1b) 后续继续对SD继续通讯.这里是不对的.初始化过程中应该为1B. 这里修改为hsd.Init.BusWide = SDIO_BUS_WIDE_1B;

2024-04-28 11:58:54 542

原创 STM32操作写入FLASH失败,错误FLASH_FLAG_PGSERR

正确的解决方法:找到跑飞指针的地方,修改即可.(不限于喂狗.包括其他指针的操作,比如定义指针没有赋值,对指针进行了操作的时候,(指针恰好指向flash的地址范围)也会导致 flash报错)粗暴的解决方法: 写入之前 清除错误标志即可.(知道什么原因导致的,可以这么做)然后却还进行了喂狗操作. 由于没有初始化,喂狗飞了指针,flash内存出错.最后发现是调试的时候禁用了 wwdg 窗口看门狗的初始化,(习惯使然)使用stm32 hal库写入flash的时候 返回err。再进行写入的时候就报错写入不了了.

2023-12-12 18:42:16 1361

原创 filerun通过docker安装在ARMV7(32位,玩客云,树莓派)上的正确方式.

armv7使用docker安装filerun

2023-03-28 13:46:49 1113

原创 解决ARM-Compiler ‘Default Compiler Version 5‘ which is not available

解决ARM-Compiler 'Default Compiler Version 5' which is not available

2023-01-16 15:48:16 6052 3

原创 mNetAssist(arm64)linux下图形界面的网络调试助手

mNetAssist

2022-11-12 10:21:52 5725 10

原创 STM32——FLASH擦除/写入失败的踩坑笔记。(WRPERR)

STM32——FLASH擦除/写入失败的踩坑笔记。(WRPERR)

2022-07-01 13:40:59 4902 1

原创 STM32 ADC的一些随笔。

1:规则通道,注入通道。 在多通道adc采集时才用得到。 规则通道共用一个ADC_CR采集结果寄存器,每次只能保存一个通道的值。注入通道共用另一个JDRx。规则通道,按顺序来,一个个转换。注入通道可以插队。2:通常 采样周期越长,精度越好。 ADC频率最高14mhz。周期最短14周期。所以ADC采样最短时间 1us。3:转换开始 可软件触发也可硬件触发。也可adc看门狗触发(达到电压阈值触发中断)。4:在打开扫描的多通道模式下,有个好玩的地方Continu...

2022-04-04 12:33:41 513

原创 STM32L051 低功耗模式和踩坑随笔(自用)

这几天用到了STM32L051的低功耗。之前也接触过低功耗,各种模式有些迷糊,正好整理一下。手册上说有5个模式,功耗依次递减。低功耗运行模式:调压器处于低功耗模式,时钟频率受限。进入方式: 配置APB,AHB时钟线、系统时钟频率和调压器。睡眠模式:内核停止,外设保持运行。进入方式:WFI 或WFE。 系统控制寄存器 位SLEEPDEEP = 0 浅...

2022-04-02 10:01:01 3888 1

原创 float数,十进制向二进制转换的过程。(简单易明)

先总结:float十进制转二进制的过程1:先去正负号。float最高位1个bit 代表正负。0正1负。2:然后对整数部分,和小数部分 都进行二进制换算。3:最后偏移到整数部分只剩下1(隐去不参与存储)。偏移位数+127存入23~30,小数部分存入0~22。反过来float二进制转为十进制的时候的过程1:对指数30~23,-127取值。2:对尾数0~22,前面+1。再偏移指数数量。3:整数和小数部分分别二进制转十进制。加正负号。符号位 表示正负。 指数部分表示小数点在二

2022-03-16 13:11:38 2929

原创 STM32(M3内核)位带操作与操作寄存器相比的优越性

STM32的位带操作是什么不在这展开来讲。相信点开这个标题进来看的人是不会不知道位带操作的。先总结:不会被中断导致出错,使用时要加volatile。下面是搬运的Cortex—M3内核权威指南里面对位带操作优越性的说明最后说一下。两个建议:1:简单的程序直接用库函数或者寄存器操作就行了,对于比较复杂的程序建议尽量使用位带操作来实现。程序复杂起来了,位带节省的效率和代码空间就可观了。2:一定要使用宏来位带操作,别直接操作。...

2022-02-21 17:23:45 1726 1

原创 STM32F0 进入standby休眠模式自动唤醒重启问题的解决。

http://www.openedv.com/forum.php?mod=viewthread&tid=312683&extra=page%3D1本人在openedv的发帖,问题就是库函数版本的区别,有的库函数缺少清除唤醒标志位的操作,需要手动清除。

2020-06-17 11:08:39 2958

转载 解决STM32开启定时器时立即进入一次中断程序问题

http://www.51hei.com/bbs/dpj-40940-1.htmlhttps://blog.csdn.net/ygt666/article/details/79586390

2019-08-09 08:47:59 2520

原创 内存管理与局部指针

程序生命周期较短或者比较简单,可以不用考虑这些。不用看下去了。局部指针在使用完毕之后要释放掉。(参数指针和返回指针 不在此论,因为外部还会有指向内存地址的指针。在函数内释放反而会出错)如果不释放掉指针所指向的内存地址会一直保持着被占用的状态。如果多了(一次性运行超长时间或者超多调用局部指针)会导致内存不足的报错--内存泄漏。所以使用局部指针的时候建议malloc() free() //...

2019-04-03 16:05:34 1769

原创 UCOS常用API函数指令

********************************************************************************************************* * 消息邮箱管理 (MESSAGE MAILBOX MANAGEMENT) * * OSMboxAccept ()...

2018-07-18 15:39:42 865

原创 ucos 任务控制块,任务就绪表,事件控制块.信号量集等待任务控制块

任务控制块 任务就绪表   事件控制块 队列控制块和队列事件控制块一对一.创建消息队列取一个空事件控制块和一个空队列控制块. 信号量集的功能分为两部分.标志组和等待任务链表标志组结构: 等待任务控制块: 内存控制块...

2018-07-18 10:53:04 1141

原创 UCOS挂起与延时

#if OS_TASK_SUSPEND_EN > 0uINT8U  OSTaskSuspend (INT8U prio){    BOOLEAN    self;    OS_TCB    *ptcb;    INT8U      y;#if OS_CRITICAL_METHOD == 3u                     /* Allocate storage for...

2018-07-17 17:30:18 829

原创 STM32滴答定时器与UCOS时钟系统,以及心跳和延时函数的实现.

   Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。或者把每个定时器周期...

2018-07-17 16:27:20 9204 1

原创 C语言中const变量修改以及优化问题

const声明的变量,无法直接修改,但是可以通过指针间接修改.#include <stdio.h>void main(void){  //   int volatile const a = 10;     int const a = 10;     int b = 20;     int *p = (int*)&a;     *p = 20;     printf("&...

2018-07-06 10:28:01 2686

原创 STM32串口中断处理中.是否需要清除接受/发送完成/中断 标志位的问题.

关于是否在串口中断服务程序中是否加清除标志位操作.手册有说明正常的读写DR寄存器都能达到清楚标志的效果.所以除了多缓存通信的情况下,没必要增加清除标志位.两个清除函数.USART_ClearFlag清除完成标志位 USART_ClearITPendingBit清除中断标志位据说二者功能一样.我还没细看.是否一样,待定吧.程序如下.总之之后进行读写D...

2018-06-29 14:56:28 49473 5

原创 Ubuntu16无线网络正常连接但是无法上网的解决方法

WIFI正常连接.但是打不开网页,PING不通IP地址(非DNS的锅).笔记本是AC3168的无线网卡.刚装完ubuntu之后可以正常上网,后来不知怎么就不能上网了.一顿瞎JB折腾.也没有解决,最后瞎猫碰了死耗子解决了.就把方法分享一下.很简单. 用个能上网的电脑去Wiki https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi 下载了对...

2018-06-23 15:06:16 9575

原创 “unable to find a medium containing a live file system“问题真正有效的解决方法。

unable to find a medium

2017-11-11 20:16:32 32373 14

Qt+Creator快速入门+源码 1积分下载

第三版

2023-03-21

m-netassist-arm64

m_netassist 的arm版本 . 使用说明在 压缩文件内的 readme.md

2023-02-23

TCS34725驱动文件

TCS34725的驱动文件,这里是用在stm32上的,如果用在别的芯片上,稍微改一下就能用. 盲目移植肯定是不能用的,必要的修改是肯定的。

2019-03-04

stm32f103的TCS34725驱动分享

stm32f103C8T6的MDK程序,如果同为STM32 改一下板型.,和设置里面的C/C++里的Define(不报错就不用改) 就直接能用. 改自https://blog.csdn.net/luo_5458/article/details/77993286#commentBox

2019-03-04

空空如也

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

TA关注的人

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