嵌入式
文章平均质量分 92
Dream_Chaser2015
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
定位引起hardfault错误的代码
ARM开发过程中如何快速定位到导致Hard Fault的故障代码原创 2024-12-21 18:52:36 · 905 阅读 · 0 评论 -
STM32启动过程详解
STM32启动过程详解初始化栈顶指针sp将0x08000000 - 0x08000003中的值赋值给sp,由硬件自动完成。执行复位程序Reset_HandlerReset_Handler中先调用SystemInit进行系统初始化,然后调用__main函数。在__main函数中会初始化RW和ZI段,最后跳转到main函数。; Reset handlerReset_Handler P...原创 2020-01-02 22:41:12 · 4933 阅读 · 0 评论 -
探讨C语言中关键字volatile的含义
原文地址:http://www.jb51.net/article/37489.htmvolatile 的意思是“易失的,易改变的”。这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化。通常在程序中申明了一个变量时,编译器会尽量把它存放在通用寄存器中,例如ebx。当CPU把其值放到ebx中后就不会再关心对应内存中的值。若此时其他程序(例如内核程序或一个中断)修改了转载 2016-08-05 15:09:40 · 2528 阅读 · 0 评论 -
KEIL MDK中的Code RO-data RW-data ZI-data
Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。 简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+RO Data+RW D转载 2015-12-30 09:00:33 · 512 阅读 · 0 评论 -
新型的按键扫描程序,仅三行程序
新型的按键扫描程序不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不转载 2015-09-24 14:34:45 · 859 阅读 · 0 评论 -
uCOS-III任务延时全过程
看了几天的uCOS-III多少了解了一点儿,刚开始看的时候只想先了解一下任务怎样从延时中恢复,没想到涉及那么多东西。经过一天的时间整理出一个简单的流程图,算是对这几天的总结吧!原创 2015-10-20 17:17:16 · 3304 阅读 · 0 评论 -
STM32普通定时器(TIM2-7)的时钟源
【问题】STM32F103的APB1最大总线时钟是AHB总线时钟的1/2,最大为36MHz,在用ST的库函数(v2.0)的时候,TIM2(普通定时器)的时钟频率为72MHz,不知道原因何在?【问题分析】STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟转载 2015-09-15 11:31:09 · 14575 阅读 · 0 评论 -
位带操作在stm32中的C语言实现
位带操作在stm32中的C语言实现 首先: #define BITBAND(addr,bitnum) ((addr & 0xF0000000) + 0x2000000 + ((addr & 0xFFFFF) 对上句程序的解释: 利用宏定义的方式将位带地址的映射表示出来,该函数有两个参数addr和bitnum,分别是原本的地址转载 2015-09-10 11:14:23 · 1603 阅读 · 0 评论
分享