打印
[STM32F0]

求stm32f072的官方can例子

[复制链接]
5185|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liguang02|  楼主 | 2014-7-3 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求stm32f072的官方can例子,可以正常使用的
沙发
mmuuss586| | 2014-7-3 19:53 | 只看该作者
看了下030,051,072的DISCOVERY都没有;
你只能自己写一个了,可以参考F1,F4的;

使用特权

评论回复
板凳
liguang02|  楼主 | 2014-7-3 21:16 | 只看该作者
mmuuss586 发表于 2014-7-3 19:53
看了下030,051,072的DISCOVERY都没有;
你只能自己写一个了,可以参考F1,F4的; ...

大哥,问题是我自己写的can初始化都不成功啊

使用特权

评论回复
地板
CS_Police| | 2014-7-6 19:56 | 只看该作者
初始化简单的啊,上程序,万事不求人:lol
int main(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  CAN_InitTypeDef CAN_InitStructure;
  CAN_FilterInitTypeDef  CAN_FilterInitStructure;
  uint32_t i;

  /* Enable the CAN controller interface clock*/
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN, ENABLE);      

  /* Enable the clock for the CAN GPIOs */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);   
  /* Connect the involved CAN pins to AF */
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_4);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_4);
  /* Configure these CAN pins in alternate function mode by calling */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
  CAN_DeInit(CAN);
       
  /* Initialise and configure the CAN */
  CAN_InitStructure.CAN_ABOM = DISABLE;
  CAN_InitStructure.CAN_AWUM = DISABLE;
  CAN_InitStructure.CAN_NART = DISABLE;
  CAN_InitStructure.CAN_RFLM = DISABLE;
  CAN_InitStructure.CAN_TTCM = DISABLE;
  CAN_InitStructure.CAN_TXFP = DISABLE;
  CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
       
  CAN_InitStructure.CAN_BS1 = CAN_BS1_9tq;
  CAN_InitStructure.CAN_BS2 = CAN_BS2_8tq;
  CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;
  CAN_InitStructure.CAN_Prescaler = 10;
       
  CAN_Init(CAN,&CAN_InitStructure);
       
  /* CAN filter init "FIFO0" */
  CAN_FilterInitStructure.CAN_FilterNumber = 0;
  CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
  CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
  CAN_FilterInitStructure.CAN_FilterIdHigh = 0;
  CAN_FilterInitStructure.CAN_FilterIdLow = 0;
  CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
  CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
  CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
  CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
  CAN_FilterInit(&CAN_FilterInitStructure);
       
       
  TxMessage.Data[0] = 0xAA;
  TxMessage.DLC = 5;
  TxMessage.ExtId = 0xAA;
  TxMessage.IDE = CAN_ID_STD;
  TxMessage.RTR = CAN_RTR_Data;
  TxMessage.StdId = 0x155;
               
  /* Infinite loop */
  while (1)
  {
     i = 0xFFFFF;
     CAN_Transmit(CAN,&TxMessage);
     while(i--);
  }  
}

使用特权

评论回复
5
airwill| | 2014-7-6 20:02 | 只看该作者
STM32 的 CAN 模块的差别不大, 除了频率要调整外, 基本相互之间都可以移植过去.

什么叫初始化不成功? 具体什么情况呢?
CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;
在回环模式下, 是用来测试的, 如果你在 I/O 口上看到正常波形了, 就可以切换到正常模式

使用特权

评论回复
6
liguang02|  楼主 | 2014-7-6 22:51 | 只看该作者
CS_Police 发表于 2014-7-6 19:56
初始化简单的啊,上程序,万事不求人
int main(void)
{

你在072上面跑过了没有,使用的是那个库函数的版本,求整个工程文件,复制你的过去,软件仿真跑不过去,使用的是iar7.10

使用特权

评论回复
7
Marco-Marco| | 2014-9-5 16:13 | 只看该作者
liguang02 发表于 2014-7-6 22:51
你在072上面跑过了没有,使用的是那个库函数的版本,求整个工程文件,复制你的过去,软件仿真跑不过去, ...

你好,两个月过去了,请问你f072的can怎么样了,能否共享一下

使用特权

评论回复
8
liguang02|  楼主 | 2014-9-5 16:32 | 只看该作者
Marco-Marco 发表于 2014-9-5 16:13
你好,两个月过去了,请问你f072的can怎么样了,能否共享一下

死掉了,我也很茫然,发发就死掉了

使用特权

评论回复
9
Marco-Marco| | 2014-9-5 16:41 | 只看该作者
liguang02 发表于 2014-9-5 16:32
死掉了,我也很茫然,发发就死掉了

你是指偶尔能正常发送,然后会莫名失掉吗

使用特权

评论回复
10
liguang02|  楼主 | 2014-9-5 22:19 | 只看该作者
Marco-Marco 发表于 2014-9-5 16:41
你是指偶尔能正常发送,然后会莫名失掉吗

是啊,找不到原因,

使用特权

评论回复
11
aundry| | 2015-9-4 18:35 | 只看该作者
liguang02 发表于 2014-9-5 16:32
死掉了,我也很茫然,发发就死掉了

能把初始化的发过来看看,到底哪里出错了

使用特权

评论回复
12
Fish1888| | 2019-8-14 17:11 | 只看该作者
我也是用072做了一个CAN的发送器,奇怪的时,如果接受端先打开,在打开072的发送端,就没问题,但如果关掉接受端,再开接受端,则发送端不发送了,为什么

使用特权

评论回复
13
elecpipi| | 2019-11-18 20:44 | 只看该作者
mmuuss586 发表于 2014-7-3 19:53
看了下030,051,072的DISCOVERY都没有;
你只能自己写一个了,可以参考F1,F4的; ...

大哥,可以分享一下F4的CAN示例程序吗?或者告诉小弟哪里可以找到呀,

使用特权

评论回复
14
mmuuss586| | 2019-11-20 10:28 | 只看该作者
elecpipi 发表于 2019-11-18 20:44
大哥,可以分享一下F4的CAN示例程序吗?或者告诉小弟哪里可以找到呀,

装个CUBE,F4的库,有参考例程的

使用特权

评论回复
15
elecpipi| | 2019-11-23 16:29 | 只看该作者
mmuuss586 发表于 2019-11-20 10:28
装个CUBE,F4的库,有参考例程的

感谢了

使用特权

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

本版积分规则

56

主题

307

帖子

2

粉丝