sync 发表于 2021-4-28 08:45:45

求助 stm32L031 USART2 PA9 PA10 自举问题

AN2606中,说USART2在PA9,PA10或者PA2,PA3都是可以的,但实际硬件电路我使用了PA9,PA10,配合STM32CubeProgrammer软件使用,却总是无法连接到单片机,是只能使用PA2PA3吗?还是哪里需要设置一下呢?

已经找到问题了,STM32F031自举程序确实使用了USART2 PA9 PA10引脚。是自己的程序给USART2配置的时钟和自举程序默认使用的时钟不一致造成的。进入自举前,配置好usart2的默认时钟就好了。
另外用STM32CubeProgrammer通过串口下载后,是不是没有办法直接运行程序?必须断电重启才行吗?

奇迹 发表于 2021-4-28 16:09:31

1.有可能你的芯片是老款不支持新版的自举程序,建议查询一下id2.如果使用UART2作为接口的话,是对一些IO上电时电平是有要求的,建议检查
3.自举程序不可使用重映射之后的引脚

sync 发表于 2021-4-28 14:03:12

我使用的stm32L031只有20脚 usart2 可以配置PA2PA3也可以配置在PA9PA10,an2606里面也没有指定必要PA2PA3,不知道为啥PA9PA10就是不行呢???

sync 发表于 2021-4-29 10:04:42

奇迹 发表于 2021-4-28 16:09
1.有可能你的芯片是老款不支持新版的自举程序,建议查询一下id2.如果使用UART2作为接口的话,是对一些IO上 ...

多谢解答,stm32L031 usart2无论用PA2PA3,还是用PA9PA10都是需要指定复用功能的。终于找到这个文档里面说stm32L031 的自举程序 只能用usart2的pa9pa10



sync 发表于 2021-4-29 10:12:40

sync 发表于 2021-4-29 10:04
多谢解答,stm32L031 usart2无论用PA2PA3,还是用PA9PA10都是需要指定复用功能的。终于找到这个文档里面说 ...

目前的问题是
我将外部boot0引脚拉高,复位芯片,确定pa9pa10是可以使用STM32CubeProgrammer烧录的。
但我在程序中,跳转到stm32l031的自举程序地址0x1FF00000,却总是无法连接到STM32CubeProgrammer。。
进入自举后,用串口发送0x7f,正常应该收到0x79,实际接收的确实0x86 FE

奇迹 发表于 2021-5-7 13:52:34

sync 发表于 2021-4-29 10:12
目前的问题是
我将外部boot0引脚拉高,复位芯片,确定pa9pa10是可以使用STM32CubeProgrammer烧录的。
但 ...

自举程序进入后如果不是以默认引脚下载的话,是需要检查部分引脚状态来判断切换的
页: [1]
查看完整版本: 求助 stm32L031 USART2 PA9 PA10 自举问题