首页 > 编程知识 正文

arduino常用函数,arduino图形化编程循迹

时间:2023-05-05 21:58:41 阅读:170738 作者:1409

我想留出接通STM32电源的时间和执行函数所需的时间,但是用计时器计时是徒劳的。 在其他平台上可以实现类似的函数。 也做一个STM32。 为了找不到前人的立足点,试着找了一下,只是有人做了没有公布而已。 反而找到了模范党。 最终在crazepony飞控代码中发现了蛛丝马迹。 我要开始种树了。

接下来开始移植

平台: stm32f407

函数库: STM 32 f4xx _ DSP _ stdperiph _ lib _ v 1.8.0

IDE:IAR

首先,添加要用于stm32f4xx_it.c的变量

//cyclespermicrosecondstaticvolatileuint 32 _ tu sticks=0; //currentuptimefor1khzsysticktimer.willrolloverafter 49 days.hopefullywewon ' TC are.volatile uint 32 _ tsystickuptime=0

voidsystick_Handler(void ) { sysTickUptime; //循环计数器为voidcyclecounterinit(void ) ) { RCC_ClocksTypeDef clocks; RCC_getclocksfreq(clocks; us ticks=clocks.sysclk _ frequency/1000000; sy stick _ config (clocks.hclk _ frequency/1000 ); 打开//SysTick系统tick计时器初始化中断,并初始化1 ms (//returnsystemuptimeinmicroseconds (rollover in70 minutes )/us uint 32 _ t microseconds ) cycle_cnt=SysTick-VAL; }while(ms!=sysTickUptime; usTicks_t=usTicks; return(ms*1000 ) ) usTicks_t * 1000 - cycle_cnt )/usTicks_t; //returnsystemuptimeinmilliseconds (rollover in 49 days ) uint32_tmillis ) void ) { return sysTickUptime; 调用cycleCounterInit (; 初始化就可以了。

注意:请勿更改嘀嗒计时器中的相关计数寄存器。 嘀嗒的计数混乱。

delay延迟同样由micros ()实现,不能用嘀嗒计数寄存器写

延迟代码如下所示

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */void delay _ * * * * * * * * * * * * while (micros (-t0nus ) ); (() (() voiddelay_s(while(micros )- t0 ns*1000000 ) }如果尝试声明未声明的函数,它包含的头文件不包含在内。 (编译一下就知道是否有不包含的声明。 )

例行程序在这里

3359 download.csdn.net/download/u 011597120/112222460 ] 65https://download.csdn.net/download/u 0111597120/1222246620

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。