关于标题提示问题,找了好久才找到问题在哪里,分享给大家,防止后来人花费大量时间查找这个问题
STM32G系列是ST公司这两年新推的芯片,相对于STM32F系列有了很多地方的更改。个人感觉这些更改有些地方比较好使,比如增加了DMAMUX外设,DMA通道不在和各个外设对应死,很方便分配通道和外设的对应关系;但是有些地方修改的就不怎么合理了,比如管脚数目较少的芯片,直接将boot的启动区域修改为了由内部的选项字节位来进行决定,而不再是由外部的boot0管脚电平状态决定,当然这个可以修改,但是凭空多了很多麻烦事。
在G系列的芯片上多了一个Empty Check位,用于检测芯片中是否有程序。当检测到程序中没有程序的时候,可以直接通过串口烧录程序,这样省去了拉高boot0引脚的操作,省去了生产时候的麻烦。但是在进行KEIL5调试的时候,坏就坏在了这里。直接进入debug,会被认为是在串口烧录模式中,所以始终是运行不到主程序中的。如图中所示:运行的地址为0x1FFF19A4,查询用户手册,该处地址对应的区域为system memory区域,说明程序是运行在官方固化的boot loader程序中。
解决办法:重启上电就行了,这个问题只针对第一次烧录的新芯片,或者是进行过全擦的新品