STM32G070,为什么把PA15设置为INPUT,SWD就无法调试了?
请问,,,STM32G070,为什么把PA15设置为INPUT,SWD就无法调试了?
单步跑到那里,就断开了,
void GPIOSetAllHighZ(void)
{
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB);
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOC);
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOD);
// 如果把GPIO_PIN_15设置成INPUT,单步调试立即断开了
LL_GPIO_SetPinMode(GPIOA,
LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_2 | LL_GPIO_PIN_3| LL_GPIO_PIN_4| LL_GPIO_PIN_5| LL_GPIO_PIN_6 |
LL_GPIO_PIN_7 | LL_GPIO_PIN_8 | LL_GPIO_PIN_9 | LL_GPIO_PIN_10 | LL_GPIO_PIN_11 | LL_GPIO_PIN_12 , //| LL_GPIO_PIN_15 ,
LL_GPIO_MODE_INPUT);
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_ALL, LL_GPIO_MODE_INPUT);
LL_GPIO_SetPinMode(GPIOC, LL_GPIO_PIN_ALL, LL_GPIO_MODE_INPUT);
LL_GPIO_SetPinMode(GPIOD, LL_GPIO_PIN_ALL, LL_GPIO_MODE_INPUT);
}
硬件:PA15和PA14连到一起了?
或者LL库有问题? SUPER_CRJ 发表于 2021-12-25 12:17
硬件:PA15和PA14连到一起了?
或者LL库有问题?
没有,PA15悬空的 #define GPIO_BSRR_BS14_Msk (0x1UL << GPIO_BSRR_BS14_Pos) /*!< 0x00004000 */
#define GPIO_BSRR_BS14 GPIO_BSRR_BS14_Msk
#define GPIO_BSRR_BS15_Pos (15U)
#define GPIO_BSRR_BS15_Msk (0x1UL << GPIO_BSRR_BS15_Pos) /*!< 0x00008000 */
#define GPIO_BSRR_BS15 GPIO_BSRR_BS15_Msk
LL库没看出什么毛病
用开发板,也是一样的 如果PA15无外接,大概率是干扰,建议先设置上下拉,然后再设置输入,看下现象 我手上没有同款的核心板,建议用软件生成个只配置SWD和PA15的工程,应该能证明芯片没问题 2nd 发表于 2021-12-28 13:31
我手上没有同款的核心板,建议用软件生成个只配置SWD和PA15的工程,应该能证明芯片没问题 ...
用了一块核心板,前面也只有初始化时钟,然后就把所有没有用的引脚设置变INPUT,SWD就断了,后没的代码没有运行。 PA14还兼具Boot功能,楼主有没有加个电阻拉到GND? 同怀疑PA15和PA14连锡了
万用表测一下看看? xiaoergao 发表于 2022-1-2 14:49
PA14还兼具Boot功能,楼主有没有加个电阻拉到GND?
PA14有下拉,谢谢回复 tomzbj 发表于 2022-1-2 17:20
同怀疑PA15和PA14连锡了
万用表测一下看看?
应该没有,用买的核心板也是一样的 LL库咋样?hal库的bug比较多。 这个芯片公司出货都几十W了,没有遇见这个问题。
PA15和PA14没有一毛钱的关系,应该是硬件或者程序其他地方配置了。 redworlf007 发表于 2022-1-3 00:26
LL库咋样?hal库的bug比较多。
觉得LL库还是不错,相比Std库,函数更零散,灵活。
当然,有些地方,为了效率,最好也要接操作寄存器。
然后,LL本身就没有实现有的功能,可能是让用户直接调CMSIS的库或寄存器吧。
redworlf007 发表于 2022-1-3 00:26
LL库咋样?hal库的bug比较多。
(引用自13楼)
我是觉得,软件要做好,必须用LL库,
页:
[1]