黄河青山
码龄6年
关注
提问 私信
  • 博客:4,645
    4,645
    总访问量
  • 14
    原创
  • 75,874
    排名
  • 48
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2019-04-22
博客简介:

liyve_h的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    107
    当月
    12
个人成就
  • 获得60次点赞
  • 内容获得0次评论
  • 获得48次收藏
创作历程
  • 1篇
    2025年
  • 11篇
    2024年
  • 2篇
    2019年
成就勋章
TA的专栏
  • CAN
    1篇
  • 单片机硬件
    3篇
  • 硬件电路
    2篇
兴趣领域 设置
  • 嵌入式
    嵌入式硬件
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

CAN总线 ACK应答介绍

应答场长度为 2 个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送 ACK 信号)向发送器发送一“显性”的位以示应答。当多个节点发送报文时,隐性电平会被显性电平覆盖,此时显性&隐性=显性。先理解隐性电平表示无数据传输,显性电平表示有数据传输。因此,我们可以将0定义为显性,1定义为隐性。
原创
发布博客 2025.01.10 ·
95 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Eeprom相关函数调用关闭中断的一些截图

这里 SuspendAllInterrupts() 调用指令 MSR BASEPRI, R0。
原创
发布博客 2024.12.10 ·
215 阅读 ·
7 点赞 ·
0 评论 ·
2 收藏

头文件包含规则

注:只有XXXX_PBcfg.c 会包含多个头文件,其他都是只包含一个头文件。XXXX.c 包含对应的 XXXX.h头文件。一般编写一个模块会包含四个文件,如上图;XXXX_PBcfg.c 包含。涉及到的其他模块的XXXX.h。XXXX_Cfg.h 包含。Key.c文件 包含。
原创
发布博客 2024.10.16 ·
222 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

向量表重定位

由于我们在boot程序启动之后,执行了重定位,所以我们需要手动给SP和PC寄存器赋值;正常情况下,单片机启动时,自身硬件会自动实现给SP和PC寄存器赋值的;boot程序通过配置寄存器SCB_VTOR实现向量表重定位后,跳转到APP起始地址执行APP程序;假设APP存放Flash的起始地址是0x08040000;上面图片中寄存器地址有误,实际是0xE000ED08;2、从new_Vector取出第一个值赋给SP。3、从new_Vector取出第二个值赋给PC。在地址0x08040000存放了一份向量表;
原创
发布博客 2024.10.15 ·
205 阅读 ·
6 点赞 ·
0 评论 ·
2 收藏

ShareData部分读写接口的实现

定义ShareData数据块的结构体typedef struct{ uint16 u16BlockId; uint16 u16FeeOrNvmOrEaId; uint8 emBlockType; uint32 u32ReadWriteType; uint32 u32DataAddr; uint32 u32DataLength;} stShareData_BlockInfoType;C 标准库 <string.h> 中部分函数的实现voi
原创
发布博客 2024.09.04 ·
171 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

查找数组越界导致OS跑飞的问题的过程记录

查看指针变量 Adc_pCfgPtr 指向的地址 0x02040102, 该地址非flash范围,非Ram范围,非Eeprom范围,非芯片寄存器范围,是一个非法地址;程序进上述断点之前,查看CYCLECOUNTER的值,发现每次都是一样的;程序跑一段时间,OS会跑飞,通过在程序处打断点,知道问题与内存访问或资源访问相关的保护机制有关;程序跳上述断点的时候,查看Memory窗口,发现没有堆栈溢出的情况;经过反复调试,发现程序执行到划线处时,系统会跳到错误处理;发生写操作时,程序中断,停在断点处;
原创
发布博客 2024.08.19 ·
293 阅读 ·
9 点赞 ·
0 评论 ·
3 收藏

如何找到IAR项目里的栈顶和栈底?

栈底(Stack Bottom): 栈底是栈的初始地址,也就是栈被创建时的起始位置。栈顶(Stack Top): 栈顶是栈中最后一个元素的位置,也是栈中下一个元素将要插入的位置。在栈操作过程中,栈顶是可以变化的,每当一个元素入栈时,栈顶就会移动到下一个可用的位置;当一个元素出栈时,栈顶又会移动回到前一个位置。栈的操作入栈(Push): 元素被添加到栈顶的过程。在C语言中,通常是在函数调用时局部变量被分配到栈中,或者是在调用函数时将参数压入栈中。出栈(Pop): 元素从栈顶移除的过程。
原创
发布博客 2024.08.14 ·
713 阅读 ·
6 点赞 ·
0 评论 ·
17 收藏

如何找到IAR的Disassembly窗口中LDR指令的参数所指向的变量

程序打断点,运行到你要看的那一行汇编指令停下,查看当前PC寄存器值,然后计算出 [PC, #0xXXX] 的值;打开.map文件搜索计算值能找到对应的变量名;下图中,IAR自动显示的变量名有的是不对的;(猜测原因:我这边变量定义的类型都是UINT8)打开对应的.s文件,对相同的代码进行比对,能找到对应的变量名;
原创
发布博客 2024.08.02 ·
333 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Autosar平台集成测试测试OS的执行周期和执行时间

3、利用DavinciCFG工具,将所有的OS Application设置为特权模式,避免MPU功能执行报错;经过两次分频 寄存器PCD (5)和 PSR(128) 调节后的频率: 40M/5/128 = 62500。所以时间每过10ms, LPTMR的计时值增加 625;PCD寄存器选择100b - Divide by 5;重点是上述PCS寄存器选择SPLL时钟源;结果见 IAR调试工具窗口 Watch1;2、注释掉ECC初始化相关代码。SPLL2时钟频率是 40M。1、注释掉看门狗功能。
原创
发布博客 2024.07.09 ·
284 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

单片机S32K14X复位原因查询

S32K1XX
原创
发布博客 2024.07.09 ·
219 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Cortex-M的RamTest测试

RamTest
原创
发布博客 2024.06.19 ·
520 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

MCU的程序执行起始地址

配置Flash的布局,APP中断向量表放在地址0x00020000到0x000204FF之间;IAR调试环境显示 MSP初始值 1fff1a00 复位向量 00020a15。中断向量表内容存放在Os_Hal_Entry_Lcfg.c。本项目通过vLinkGen_Template。地址00020a15是 _start函数启动。(Cortex-M书 P165有介绍)向量表第一个地址存放:MSP初始值。向量表第二个地址存放:复位向量。地址1fff1a00是栈顶。
原创
发布博客 2024.05.31 ·
216 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

光耦继电器的应用

光耦继电器应用笔记参考https://wenku.baidu.com/view/b59c59084a7302768e993974.htmlhttp://www.elecfans.com/yuanqijian/jidianqi/20171218604733_3.html
原创
发布博客 2019.08.13 ·
888 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

关于单片机输出模式的笔记

关于单片机输出模式的笔记参考 https://wenku.baidu.com/view/5611c9e280eb6294dd886c31.html
原创
发布博客 2019.08.13 ·
208 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏