
ARM
文章平均质量分 69
逐梦,无惧!
心有多大舞台就有多大!!
展开
-
STM32不使用中断实现定时器微秒级精确延时
我们在写代码的时候避免不了要使用延时函数,很多延时函数都是使用中断或者tick来实现的,tick的方式最大到毫秒ms级别,通过中断方式的通用定时器来实现,如果实现1us的延时那么每1us就来一次中断,很影响cpu的效率。,并且很简单的方式实现的微秒级精确定时。代码如下(基于stm32f103)通过使用通用定时器来实现。原创 2024-03-22 13:49:46 · 1595 阅读 · 0 评论 -
STM32关于使用定时器触发ADC转换的理解
模式才能生效,通过配置TIM2_CCMR1_CC2S来控制TIM2_CC2究竟是处于哪种模式(CC2S=0为比较输出,>0为输入捕捉),请注意:这里蓝框的其中一个输出是TIMx_CH2,而TIM2_CH2又是ADC规则通道的触发源,也就是说如果要触发ADC,则需要每次比较匹配时,在TIM2_CH2上产生一次上升沿。CCMR1_CCxS(x为1、2、3、4,决定是哪个通道)是选择为捕捉输入还是比较输出,这里我们需要配置为输出。要使用TIM2的CC2来触发ADC,看懂这个图是关键。模式才能生效,蓝框是配置为。原创 2024-03-21 09:40:14 · 3849 阅读 · 0 评论 -
RO段、RW段和ZI段的理解
RO段、RW段和ZI段一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要了解RO,RW和ZI需要首先了解以下知识: ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin...原创 2024-03-20 08:40:02 · 1100 阅读 · 0 评论 -
__main代码分析(针对RO RW 从ROM到RAM的加载和初始化ZI)
__main代码分析(针对RORW 从ROM到RAM的加载和初始化ZI)STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数。跳转具体到代码段部分如下:[cpp] view plain copyReset_HandlerPROC EXPORTReset_Handler[WEAK] IMPORT__main L...原创 2024-03-20 08:44:23 · 2159 阅读 · 0 评论