查看: 1804|回复: 9

[求助] PE生成的CAN初始化代码,仿真运行问题

[复制链接]

该用户从未签到

5

主题

18

帖子

0

注册会员

Rank: 2

积分
53
最后登录
1970-1-1
发表于 2015-4-21 10:08:37 | 显示全部楼层 |阅读模式
用PE生成的CAN初始化函数,问题出在初始化完成后,清楚 clrReg8Bits(CAN0CTL0, 0x01U); 但是while(CAN0CTL1_INITAK) 没有改变,软件一直在该语句循环。

void CAN0_Init(void)
{
  /* CAN0CTL0: INITRQ=1 */
  setReg8Bits(CAN0CTL0, 0x01U);         
  while(CAN0CTL1_INITAK == 0U) {       /* Wait for init acknowledge */
  }
  /* CAN0CTL1: CANE=1,CLKSRC=0,LOOPB=0,LISTEN=0,BORM=0,WUPM=0,SLPAK=0,INITAK=1 */
  setReg8(CAN0CTL1, 0x81U);            
  /* CAN0BTR1: SAMP=0,TSEG22=1,TSEG21=0,TSEG20=1,TSEG13=1,TSEG12=0,TSEG11=0,TSEG10=0 */
  setReg8(CAN0BTR1, 0x58U);            
  /* CAN0BTR0: SJW1=0,SJW0=1,BRP5=0,BRP4=0,BRP3=0,BRP2=0,BRP1=1,BRP0=1 */
  setReg8(CAN0BTR0, 0x43U);            
  /* CAN0IDAC: ??=0,??=0,IDAM1=0,IDAM0=0,??=0,IDHIT2=0,IDHIT1=0,IDHIT0=0 */
  setReg8(CAN0IDAC, 0x00U);            
  /* CAN0IDAR0: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR0, 0x00U);            
  /* CAN0IDAR1: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR1, 0x00U);            
  /* CAN0IDAR2: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR2, 0x00U);            
  /* CAN0IDAR3: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR3, 0x00U);            
  /* CAN0IDAR4: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR4, 0x00U);            
  /* CAN0IDAR5: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR5, 0x00U);            
  /* CAN0IDAR6: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR6, 0x00U);            
  /* CAN0IDAR7: AC7=0,AC6=0,AC5=0,AC4=0,AC3=0,AC2=0,AC1=0,AC0=0 */
  setReg8(CAN0IDAR7, 0x00U);            
  /* CAN0IDMR0: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR0, 0xFFU);            
  /* CAN0IDMR1: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR1, 0xFFU);            
  /* CAN0IDMR2: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR2, 0xFFU);            
  /* CAN0IDMR3: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR3, 0xFFU);            
  /* CAN0IDMR4: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR4, 0xFFU);            
  /* CAN0IDMR5: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR5, 0xFFU);            
  /* CAN0IDMR6: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR6, 0xFFU);            
  /* CAN0IDMR7: AM7=1,AM6=1,AM5=1,AM4=1,AM3=1,AM2=1,AM1=1,AM0=1 */
  setReg8(CAN0IDMR7, 0xFFU);            
  /* CAN0CTL0: INITRQ=0 */
  clrReg8Bits(CAN0CTL0, 0x01U);         
while(CAN0CTL1_INITAK) {             /* Wait for init exit */
  }

  /* CAN0CTL0: RXFRM=0,RXACT=0,CSWAI=0,SYNCH=0,TIME=0,WUPE=0,SLPRQ=0,INITRQ=0 */
  setReg8(CAN0CTL0, 0x00U);            
  /* CAN0RIER: WUPIE=0,CSCIE=0,RSTATE1=0,RSTATE0=0,TSTATE1=0,TSTATE0=0,OVRIE=0,RXFIE=1 */
  setReg8(CAN0RIER, 0x01U);            
  /* CAN0TIER: ??=0,??=0,??=0,??=0,??=0,TXEIE2=0,TXEIE1=0,TXEIE0=0 */
  setReg8(CAN0TIER, 0x00U);            
}
我知道答案 目前已有9人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-4-21 10:48:36 | 显示全部楼层
    楼主有没有接CAN收发器?如果没有接,把CAN改为自测模式。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    18

    帖子

    0

    注册会员

    Rank: 2

    积分
    53
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-21 10:52:10 | 显示全部楼层
    没有接CAN收发器,我马上试一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    18

    帖子

    0

    注册会员

    Rank: 2

    积分
    53
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-21 11:40:05 | 显示全部楼层
    我用的是full chip simulation没有接电路板,刚试了打开回环模式,问题依旧。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    18

    帖子

    0

    注册会员

    Rank: 2

    积分
    53
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-21 13:05:26 | 显示全部楼层
    连接开发板以后,问题就没有了,软件可以运行。还需要继续深入弄清楚这是为什么。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2015-4-22 14:40:51 | 显示全部楼层
    血狗尾 发表于 2015-4-21 11:40
    我用的是full chip simulation没有接电路板,刚试了打开回环模式,问题依旧。

    楼主你好
    请问你用的什么编译环境还可以软件仿真? 我记得Cortex M0+\M4这种内核都不支持的呢。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-4-22 14:59:30 | 显示全部楼层
    软件模拟模式会出这样的问题,之前我也出过,但是在板子上仿真就没事。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-4-22 22:15:23 | 显示全部楼层
    安 发表于 2015-4-22 14:59
    软件模拟模式会出这样的问题,之前我也出过,但是在板子上仿真就没事。

    和ST社区版主 同一个人
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-4-23 10:36:35 | 显示全部楼层
    wambob 发表于 2015-4-22 22:15
    和ST社区版主 同一个人

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-5-14 09:12:30 | 显示全部楼层
    非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-25 09:20 , Processed in 0.104816 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表