完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
方法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); } } 效果: |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
2433 浏览 0 评论
3341 浏览 9 评论
3021 浏览 16 评论
3514 浏览 1 评论
9118 浏览 16 评论
1242浏览 3评论
635浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
627浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2373浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1936浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-23 08:55 , Processed in 1.745886 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号