完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我一直在使用 Nucleo 68 板为我的项目开发固件。我一直在同时从事两个项目——一个是纯粹的硬件控制——读取/写入各种外围设备(带有 IT 的 UART 和 I2C DMA 和外部中断)。我对这一面很满意,而且效果很好。另一个项目是纯 BLE 应用程序,我现在已经编写了它,并且它本身可以完美运行。它是一个 BLE 客户端,可以简单地从外围传感器获取数据。 这些是我的观察: 1/ 两个项目都可以完美运行——两者的配置文件相同。 2/ 简单地组合项目预计会失败,因为主循环应该被包装到一个注册到音序器的函数中,所以这并不奇怪。 3/ 然而,当删除所有其他代码并仅离开 BLE 应用程序、定序器和一个外部中断时,中断未注册(通过 SW3 按钮)。 所以这有效: MX_GPIO_Init(); 而 (1) { } . . . void HAL_GPIO_EXti_Callback(uint16_t GPIO_Pin){ 如果(GPIO_Pin == SW3_Pin){ HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin); } } 但这不是: MX_GPIO_Init(); MX_APPE_Init(); 而 (1) { MX_APPE_Process(); } . . . void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ 如果(GPIO_Pin == SW3_Pin){ HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin); } } 我想这将是解决问题的第一步。我可以毫无问题地将我的 while(1) 循环的全部内容推入一个任务中,但是如果一个简单的中断不起作用我看不出有什么意义(并且我的 UART 在中断上运行,I2C 通过中断发出信号,并且用户按钮也使用那些)。 使用调试器时 - 我看到带有 MX_APPE_Process() 的 while(1) 循环正在愉快地运行,但从未捕获到中断。 这里可能出了什么问题? 非常感谢! 我正在使用 STM32CubeIDE 1.7.0 STM32CubeMX 6.3.0 以及来自 Github 的最新 FUS 和 BLE Stack:v1.12 |
|
相关推荐
1个回答
|
|
此问题已报告,应在我们的下一次交付中修复。
Init_Exti() 函数计划以这种方式修复
第二行应该保留,否则您的产品在低功耗模式下不能正常工作。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2674 浏览 1 评论
3224 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1797 浏览 1 评论
3627 浏览 6 评论
6010 浏览 21 评论
953浏览 4评论
1324浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
599浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1318浏览 3评论
1377浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 09:50 , Processed in 1.466187 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号