完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32L152接stlink四线SWD接口(stlink内部将PA13,PA14上拉)程序运行正常。如果拔掉stlink(PA13,PA14没上拉),uart1可以dma发送,但是uart1dma接收中断就不进入了,程序其他功能正常。不接stlink,复位也同样的问题。但是接上stlink复位,程序又完全正确了。
|
|
相关推荐
1个回答
|
|
这个问题可能是由于STM32L152的PA13和PA14引脚在拔掉ST-Link后没有上拉导致的。在STM32中,UART1的TX和RX引脚分别是PA9和PA10。然而,PA13和PA14是SWD接口的SWCLK和SWDIO引脚,它们在连接ST-Link时会被内部上拉。
当拔掉ST-Link后,PA13和PA14没有上拉,可能会导致UART1的DMA接收中断无法正常工作。为了解决这个问题,你可以尝试以下方法: 1. 在程序中手动上拉PA13和PA14引脚。你可以通过设置GPIO的输出类型为推挽输出,并设置引脚为高电平来实现上拉。 ```c GPIO_InitTypeDef GPIO_InitStructure; // 配置PA13为推挽输出,高电平 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA, GPIO_Pin_13); // 配置PA14为推挽输出,高电平 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA, GPIO_Pin_14); ``` 2. 如果手动上拉引脚后问题仍然存在,尝试检查UART1的配置,确保DMA接收中断已经正确配置。检查UART1的中断使能位和DMA接收中断使能位是否已经设置。 3. 检查UART1的DMA接收中断服务函数,确保在中断触发时,DMA接收缓冲区的指针和大小已经正确设置。 4. 如果以上方法都不能解决问题,尝试使用其他UART通道(如UART2或UART3)进行测试,以排除硬件故障的可能性。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1627 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1550 浏览 1 评论
984 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1601 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 19:22 , Processed in 0.693361 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号