打印
[APM32F1]

APM32F1直接STM32F1 的程序能下载不能仿真运行

[复制链接]
483|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用APM32F103RCT7 直接替换原产品用的STM32F103RCT6,程序不改可直接下载应用,但是仿真不了,每次都是死在MX_CAN_Init里,请问大家有没有遇到过的,STM32的程序肯定是好用的,我又测试了不同的STM32例程,只要不带CAN功能没问题,有CAN功能的全都死在MX_CAN_Init里

使用特权

评论回复
评论
Alden 2024-8-30 17:22 回复TA
CAN初始化会检测总线状态,要是错误状态好像会进错误处理相关函数,我试过直接用st的can代码能直接用的,也能增加极海的CAN2 
沙发
Alden| | 2024-8-30 17:24 | 只看该作者
103xBxCxE CAN2.zip (3.47 MB)
你试试这个st库加了can2的,can1 can2都能用

使用特权

评论回复
板凳
90houyidai| | 2024-8-31 22:43 | 只看该作者
Alden 发表于 2024-8-30 17:24
你试试这个st库加了can2的,can1 can2都能用

stF1的can是不是分一个主一个从?

使用特权

评论回复
地板
J_LAILEI|  楼主 | 2024-9-2 09:17 | 只看该作者
Alden 发表于 2024-8-30 17:24
你试试这个st库加了can2的,can1 can2都能用

感谢大神提供的例程,经过测试发现仿真不了的问题仍然存在,屏蔽CAN1的初始化就正常,只用CAN2收发正常仿真正常,确切的卡死位置都是PA12的管脚初始化,重新测试其他STM32的例程也是一样的原因,屏蔽下面几条语句就能仿真了,当然这时候CAN1收发功能不好用,请问一下您这个软件如果没问题的话,硬件什么情况下会有这种现象呢?

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //¸´ÓÃÍÆÍì
        GPIO_Init(GPIOA, &GPIO_InitStructure);                        //³õʼ»¯IO

使用特权

评论回复
5
J_LAILEI|  楼主 | 2024-9-2 09:18 | 只看该作者
90houyidai 发表于 2024-8-31 22:43
stF1的can是不是分一个主一个从?

这个芯片的两路CAN都是可以独立应用的

使用特权

评论回复
6
lengrudie| | 2024-9-2 11:29 | 只看该作者
在void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)函数里面,最后加上一句hcan.Instance->MCR &= (~(uint32_t)CAN_MCR_SLEEP);

使用特权

评论回复
7
J_LAILEI|  楼主 | 2024-9-2 17:01 | 只看该作者
lengrudie 发表于 2024-9-2 11:29
在void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)函数里面,最后加上一句hcan.Instance->MCR &= (~(u ...

加了这句没什么作用,现在问题是只要执行PA12初始化,所有寄存器全清零了,只要PA12模式不是GPIO_MODE_AF_PP就没这问题。没发过图片也不知道能不能显示出来。

使用特权

评论回复
8
J_LAILEI|  楼主 | 2024-9-2 17:05 | 只看该作者
图片以附件形式发个试试

新建位图图像.jpg (299.49 KB )

新建位图图像.jpg

使用特权

评论回复
9
Alden| | 2024-9-2 17:42 | 只看该作者
J_LAILEI 发表于 2024-9-2 17:05
图片以附件形式发个试试

我感觉你要不要检查下硬件,比如PA12 PA13是挨着的,会不会是有连锡导致PA12影响了烧录脚。

使用特权

评论回复
10
J_LAILEI|  楼主 | 2024-9-3 11:56 | 只看该作者
Alden 发表于 2024-9-2 17:42
我感觉你要不要检查下硬件,比如PA12 PA13是挨着的,会不会是有连锡导致PA12影响了烧录脚。 ...

感谢大神,确实是硬件问题,自己拆换的原来STM32的片子,应该是没焊好,找人重新焊了一下就好了,现在仿真正常

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

粉丝