|
我是用的芯片是STM32F407,外设接口只用到了USART1,UART2,UART6。将BOOT0连接VCC,BOOT1连接GND,用示波器测过这两个管脚上的电压是稳定的,而且供电也是稳定的。 但是用STM32CubeProgrammer通过UART1烧录程序的时候,它显示"Activating device [KO]",但是它的UART1可以收到也可以发送数据。然后我通过UART1给STM32F4发送"0x7F",正常的ISP程序应该会开始检测UART1的波特率然后回复"0x79",但是这个芯片什么也没给我发。 然后我通过ST-LINK检测芯片运行ISP程序的情况,发现PC指针一直在0xFFFF_FFFE卡着,如果点击"Run"就会报错"Unable to run application"
这个芯片应该没有锁,因为可以通过ST-LINK烧录程序并且正常运行。 我可以确定PCB的电路没有问题,因为我后来买了一个新生产批次的STM32F407,在这个PCB焊上去之后(同pin替换),就可以进入ISP然后通过UART1烧录。 大家帮我看一下这个芯片为啥会出现这种情况,是ISP的问题还是什么问题呢? |
咨询咨询,ST-LINK里面三种模式
请教STM32F103的DMA空闲接收问题
STM32F405rgt6 I2S DMA输入会造成卡死,这个芯片有BUG
USBX在F407上创建CDC不能正常使用
串口DMA收发出现ORE错误
STM32H725S没有硬件双缓冲吗?
STM32F427ZGTx内部RTC秒及亚秒同步问题
有没有STM32F405RG参考设计
LSM6DS3TR-C静止情况下使用MotionFX固件算出的欧拉角周期性异常跳动
全球论坛无法登录
微信公众号
手机版
没太看明白是什么意思。如果在上述条件下能收发数据,那串口工作应该是正常的。
既然用了STM32CubeProgrammer, 那么直接读取芯片内容试试看看成不成?
就是说编写了一个USART1收发数据的程序,然后通过ST-LINK烧写进去,运行这个程序,发现USART1串口可以正常收发数据,这说明USART1硬件是好的。
但是在ISP程序里面我通过USART1给它发送0X7F,它就没有响应
Boot 模式下串口操作关键是接收脚,连接不上时可以将RX脚上拉一个电阻再试试。同时串口3的PB11,PC11不要有扰动电平。
好的,我去把这两个RX上拉试一试。不过我还是不明白,就算UART1或者3的RX信号受到扰动,ISP程序应该会去测量这两个端口的波特率,那么PC指针不应该卡在0xFFFF_FFFE,这个地址不在程序ROM的地址范围里
假如其他口的接收引脚有信号,那么代码就会处理那个接收口的应用,相当于跑偏了。
好像是和选项字节有关系,你查一下试试