完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
方法1:改变滴答时钟的计数重载值,实现。
/******************************************************************************* ** 函数名称: SysTick_Config_Test ** 功能描述: ** 参数说明: SystemCoreClocks: 当前系统运行的最大时钟,单位Hz ** Value: = 1000 滴答时钟1ms中断一次 ** = 1000000 滴答时钟1us中断一次 ** 返回说明: 返回0表示成功,否则失败 ** 创建人员: Sudaroot ** 创建日期: 2019-08-26 **------------------------------------------------------------------------------ ** 修改人员: ** 修改日期: ** 修改描述: **------------------------------------------------------------------------------ ********************************************************************************/ uint32_t SysTick_Config_Test(uint32_t SystemCoreClocks, uint32_t Value) { return SysTick_Config(SystemCoreClocks / Value); } 测试: int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); //STM32F429配置最大时钟180MHz, 1us延时 SysTick_Config_Test(180000000, 1000000); while (1) { printf("sudrootrn"); HAL_Delay(1000000); } } 效果: 方法2:就是累计滴答时钟的节拍数,当节拍数大于等于我们所需计数即完成; SysTick reload value register (STK_LOAD) : 滴答时钟重载值(取值范围:0x00000001-0x00FFFFFF) 例如,如果每100个时钟脉冲需要SysTick中断,则置位重新载入99。 SysTick current value register (STK_VAL) :SysTick计数器的当前值。 还需注意滴答时钟是向下递减的。 #define SYS_CORE_CLOCK_MHZ 180 //当前系统运行的最大时钟,单位MHz void delay_us(uint32_t us) { uint32_t ticks = us * SYS_CORE_CLOCK_MHZ; uint32_t tickcount = 0, tnow = 0, told = SysTick->VAL; do{ tnow = SysTick->VAL; //获取当前值。 tickcount += (told > tnow ? (told - tnow) : (SysTick->LOAD + told - tnow)); told = tnow; }while(tickcount < ticks); } 测试: int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); while (1) { printf("sudrootrn"); delay_us(1000000); } } 效果: |
|
|
|
|
只有小组成员才能发言,加入小组>>
1599 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4738 浏览 0 评论
4229 浏览 9 评论
3822 浏览 16 评论
4398 浏览 1 评论
4209浏览 3评论
2379浏览 0评论
3393浏览 0评论
1158浏览 0评论
2843浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:41 , Processed in 0.580892 second(s), Total 44, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
921