STM32F1使用CAN无法接收数据

您所在的位置:网站首页 can总线能发送不能接收 STM32F1使用CAN无法接收数据

STM32F1使用CAN无法接收数据

2024-03-06 08:44| 来源: 网络整理| 查看: 265

STM32F1使用CAN无法接收数据 问题描述:原因分析:解决方案:实验总结

问题描述:

在使用正点原子战舰V3进行CAN实验时,CAN在回环模式下测验结果显示正常,但是在正常模式下进行两个开发板通信时,数据可以正常发送,却无法接受数据。

static void CAN_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIO clock */ RCC_APB2PeriphClockCmd(CAN_TX_GPIO_CLK|CAN_RX_GPIO_CLK, ENABLE); /* Configure CAN TX pins */ GPIO_InitStructure.GPIO_Pin = CAN_TX_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(CAN_TX_GPIO_PORT, &GPIO_InitStructure); /* Configure CAN RX pins */ GPIO_InitStructure.GPIO_Pin = CAN_RX_PIN ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(CAN_RX_GPIO_PORT, &GPIO_InitStructure); } 原因分析:

CAN在回环模式下可以得到正常数据说明CAN的初始化正常,那么问题就可能出现在后来加入的GPIO引脚的初始化,与提供例程对照后发现问题出在没有给GPIO_InitStructure.GPIO_Spee赋值

解决方案: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 实验总结

一开始以为GPIO_Speed只是配置输出的速度多少,正常不应该影响输出输入的配置,但是在看了GPIO的寄存器后发现 ,默认状态下是输入模式 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3