打印
[STM32F4]

STM407CAN回环模式能收到数据,但Tx管脚无波形

[复制链接]
2346|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
图样图森破|  楼主 | 2015-8-3 17:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手册上说,Tx管脚能检测到波形,但是测时没有,大神提示下大概是哪些问题导致的?
沙发
图样图森破|  楼主 | 2015-8-3 17:19 | 只看该作者

          RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);                                                                                                            
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
       
       
       
          GPIO_PinAFConfig(GPIOB,GPIO_PinSource9,GPIO_AF_CAN1);
          GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_CAN1);
       

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9| GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
//                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

有人说是IO配置可能有问题,

使用特权

评论回复
板凳
mmuuss586| | 2015-8-3 20:14 | 只看该作者
void CAN_Config(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  
  //CAN GPIOs configuration **************************************************
  // Connect CAN pins to AF9
  GPIO_PinAFConfig(CAN_GPIO_RX_PORT, CAN_RX_SOURCE, CAN_AF_PORT);
  GPIO_PinAFConfig(CAN_GPIO_TX_PORT, CAN_TX_SOURCE, CAN_AF_PORT);
  
  // Configure CAN RX and TX pins
  GPIO_InitStructure.GPIO_Pin =  CAN_TX_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
  GPIO_Init(CAN_GPIO_TX_PORT, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = CAN_RX_PIN ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
  GPIO_Init(CAN_GPIO_RX_PORT, &GPIO_InitStructure);

  // CAN configuration ********************************************************
  // Enable CAN clock
  RCC_APB1PeriphClockCmd(CAN_CLK, ENABLE);
  
  // CAN register init
  CAN_DeInit(CANx);

  // CAN cell init
  CAN_InitStructure.CAN_TTCM = DISABLE;
  CAN_InitStructure.CAN_ABOM = DISABLE;
  CAN_InitStructure.CAN_AWUM = DISABLE;
  CAN_InitStructure.CAN_NART = DISABLE;
  CAN_InitStructure.CAN_RFLM = DISABLE;
  CAN_InitStructure.CAN_TXFP = DISABLE;
  CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
  CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
   
  // CAN Baudrate = 1 MBps (CAN clocked at 30 MHz)
        //BaudRate = PCLK1/((BS1 + BS2 + 1)*Prescaler)=(168/4)/((5+8+1)*3)=1M
  CAN_InitStructure.CAN_BS1 = CAN_BS1_5tq;
  CAN_InitStructure.CAN_BS2 = CAN_BS2_8tq;
  CAN_InitStructure.CAN_Prescaler = 3;
  CAN_Init(CANx, &CAN_InitStructure);

  CAN_FilterInitStructure.CAN_FilterNumber = 0;

  CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
  CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
  CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
  CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
  CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
  CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
  CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
  CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
  CAN_FilterInit(&CAN_FilterInitStructure);
  
  // Transmit Structure preparation
  TxMessage.StdId = 0x321;
  TxMessage.ExtId = 0x01;
  TxMessage.RTR = CAN_RTR_DATA;
  TxMessage.IDE = CAN_ID_STD;
  TxMessage.DLC = 8;
  
  // Enable FIFO 0 message pending Interrupt
  CAN_ITConfig(CANx, CAN_IT_FMP0, ENABLE);
}

使用特权

评论回复
地板
mmuuss586| | 2015-8-3 20:14 | 只看该作者
4年前写的CAN初始化程序,仅供参考;

使用特权

评论回复
5
小小刀| | 2015-8-4 14:03 | 只看该作者
有数值就会有波形,
你可以参考下官方的Cube库试试

使用特权

评论回复
6
15113484470| | 2015-8-4 18:02 | 只看该作者
环回模式,TX RX上都是没有波形的

使用特权

评论回复
7
冰河w| | 2015-8-5 11:57 | 只看该作者
环回模式,TX RX上都是没有波形的

是吗,能解释详细点吗

使用特权

评论回复
8
mumu3013| | 2015-8-5 12:55 | 只看该作者
你可以debug一下代码,回环模式下,你的接收邮箱是有数据的,

使用特权

评论回复
9
图样图森破|  楼主 | 2015-8-10 11:47 | 只看该作者
15113484470 发表于 2015-8-4 18:02
环回模式,TX RX上都是没有波形的

官方手册上写了,回环模式可以在TX,引脚上测出波形,我确实也测出了。

使用特权

评论回复
10
图样图森破|  楼主 | 2015-8-10 11:49 | 只看该作者
冰河w 发表于 2015-8-5 11:57
是吗,能解释详细点吗

回环模式TX上是有波形的,官方手册上写了的,实际上我也是测出来的,我DEMO跑通了,开始是硬件上有点问题,

使用特权

评论回复
11
15113484470| | 2015-8-17 10:59 | 只看该作者
本帖最后由 15113484470 于 2015-8-17 11:01 编辑
图样图森破 发表于 2015-8-10 11:47
官方手册上写了,回环模式可以在TX,引脚上测出波形,我确实也测出了。

哦?我没仔细看,不好意思啊!可否截个图上来看看哪个手册上说了,纠正一下,准确是叫环回模式

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝