完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
添加定时器6,设置了Kconfig,添加了
tiM6_CONFIG #ifdef BSP_USING_TIM6 #ifndef TIM6_CONFIG #define TIM6_CONFIG { .tim_handle.Instance = TIM6, .tim_irqn = TIM6_IRQn, .name = "timer6", } #endif /* TIM5_CONFIG */ #endif /* BSP_USING_TIM5 */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)中添加了 if(htim_base->Instance==TIM6) { /* USER CODE BEGIN TIM6_MspInit 0 */ /* USER CODE END TIM6_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_TIM6_CLK_ENABLE(); /* USER CODE BEGIN TIM6_MspInit 1 */ /* USER CODE END TIM6_MspInit 1 */ } 编译烧录后系统卡死在rt_device_write调用,定时器不能启动。 |
|
相关推荐
2个回答
|
|
|
可以构造最小系统,即删除其余部分代码,只保留timer6相关代码,看有无问题出现。
|
|
|
|
|
|
问题解决了,除了要添加
TIM6_CONFIG HAL_TIM_Base_MspInit 还需要在drv_hwtimer.c中添加中断,定时器1添加TIM1_UP_IRQHandler void TIM6_IRQHandler(void) { /* enter interrupt */ rt_interrupt_enter(); HAL_TIM_IRQHandler(&stm32_hwtimer_obj[TIM6_INDEX].tim_handle); /* leave interrupt */ rt_interrupt_leave(); } 以及中断回调 #ifdef BSP_USING_TIM6 if (htim->Instance == TIM6) { rt_device_hwtimer_isr(&stm32_hwtimer_obj[TIM6_INDEX].time_device); } #endif 现在是能够使用的了,不知道为什么没有完善这个硬件定时器,让所有定时器都可以使用,是使用rtthread系统不推荐用高级定时器和基本定时器嘛,还是所有的芯片都只完善了通用定时器,不太了解这个问题。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:26 , Processed in 0.860032 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2460