找回密码
 立即注册
查看: 563|回复: 8

can通讯遇到问题,第一次用STC32G12k128进行CAN通讯

[复制链接]
  • TA的每日心情
    奋斗
    2023-12-13 10:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    7

    回帖

    54

    积分

    注册会员

    积分
    54
    发表于 2023-10-12 11:25:09 | 显示全部楼层 |阅读模式
    can通讯遇到问题,第一次用STC32G12k128进行CAN通讯,设备数据是AA 01 00 08 07 00 00 01 00 53 00 53 08 01 21 10 7A ,用STC32收到的数据是88 38 00 00 08 00 53 00 53 48 01 21 10 00 00 00,不是原装数据包,我是直接从FIFO读出来的,实在不知道什么原因,和例程说明是一致的只有13个字节,在哪里可以收到原装的,库的读函数我重写了F_CAN_ReadMsg:

                    MOV    R0,#RX_BUF
                    MOV     A, #RX_BUF0
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF1
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF2
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF3
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0

                    MOV     A, #RX_BUF0
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF1
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF2
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF3
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0

                    MOV     A, #RX_BUF0
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF1
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF2
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF3
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                   
                    MOV     A, #RX_BUF0
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF1
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF2
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0
                    MOV     A, #RX_BUF3
                    CALL    F_CAN_ReadReg
                    MOV     @R0, A
                    INC     R0

                    RET


    回复 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    回帖

    22

    积分

    新手上路

    积分
    22
    发表于 2023-10-12 11:38:19 | 显示全部楼层
    直接用官方库函数吧
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-13 10:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    7

    回帖

    54

    积分

    注册会员

    积分
    54
     楼主| 发表于 2023-10-12 11:48:54 | 显示全部楼层
    右移3位ID也是对的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-13 10:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    7

    回帖

    54

    积分

    注册会员

    积分
    54
     楼主| 发表于 2023-10-12 12:10:39 | 显示全部楼层
    运行官方例程出现下列问题Rebuild target 'FreeRTOS_STC32G_Demo'
    compiling croutine.c...
    compiling event_groups.c...
    compiling list.c...
    compiling queue.c...
    compiling stream_buffer.c...
    compiling tasks.c...
    compiling timers.c...
    compiling port.c...
    assembling .\Objects\port.src...
    compiling heap_1.c...
    compiling main.c...
    compiling putchar.c...
    compiling System_init.c...
    compiling io.c...
    compiling can.c...
    compiling STC32G_ADC.c...
    Sources\Driver\src\STC32G_ADC.c(67): warning C140: '_nop_' undefined; assuming 'extern int _nop_()'
    compiling STC32G_CAN.c...
    compiling STC32G_Clock.c...
    compiling STC32G_Compare.c...
    compiling STC32G_Delay.c...
    compiling STC32G_DMA.c...
    compiling STC32G_EEPROM.c...
    Sources\Driver\src\STC32G_EEPROM.c(47): warning C140: '_nop_' undefined; assuming 'extern int _nop_()'
    compiling STC32G_Exti.c...
    compiling STC32G_GPIO.c...
    compiling STC32G_I2C.c...
    compiling STC32G_LCM.c...
    compiling STC32G_LIN.c...
    compiling STC32G_NVIC.c...
    compiling STC32G_PWM.c...
    compiling STC32G_RTC.c...
    compiling STC32G_Soft_I2C.c...
    compiling STC32G_Soft_UART.c...
    compiling STC32G_SPI.c...
    compiling STC32G_Timer.c...
    compiling STC32G_UART.c...
    compiling STC32G_USART.c...
    compiling STC32G_WDT.c...
    compiling STC32G_ADC_Isr.c...
    compiling STC32G_CAN_Isr.c...
    compiling STC32G_Compare_Isr.c...
    compiling STC32G_DMA_Isr.c...
    compiling STC32G_Exti_Isr.c...
    compiling STC32G_GPIO_Isr.c...
    compiling STC32G_I2C_Isr.c...
    compiling STC32G_LCM_Isr.c...
    compiling STC32G_LIN_Isr.c...
    compiling STC32G_PWM_Isr.c...
    compiling STC32G_RTC_Isr.c...
    compiling STC32G_SPI_Isr.c...
    compiling STC32G_Timer_Isr.c...
    compiling STC32G_UART_Isr.c...
    compiling canfestival_can.c...
    compiling canfestival_timer.c...
    compiling dcf.c...
    compiling emcy.c...
    compiling lifegrd.c...
    compiling lss.c...
    compiling nmtMaster.c...
    compiling nmtSlave.c...
    compiling objacces.c...
    Sources\CANOpen\src\objacces.c(143): warning C188: 'parameter 3': value truncated
    Sources\CANOpen\src\objacces.c(225): warning C188: 'parameter 3': value truncated
    compiling pdo.c...
    Sources\CANOpen\src\pdo.c(263): warning C188: 'parameter 3': value truncated
    compiling sdo.c...
    compiling states.c...
    compiling sync.c...
    compiling timer.c...
    compiling ObjDict.c...
    linking...
    L251 LINKER/LOCATER V4.66.93.0 - SN: Eval Version
    COPYRIGHT ARM Germany GmbH 1995 - 2018
    @.\Objects\FREERT~1.LNP ".\Objects\croutine.obj",
    ".\Objects\event_groups.obj",
    ".\Objects\list.obj",
    ".\Objects\queue.obj",
    ".\Objects\stream_buffer.obj",
    ".\Objects\tasks.obj",
    ".\Objects\timers.obj",
    ".\Objects\port.obj",
    ".\Objects\heap_1.obj",
    ".\Objects\main.obj",
    ".\Objects\putchar.obj",
    ".\Objects\System_init.obj",
    ".\Objects\io.obj",
    ".\Objects\can.obj",
    ".\Objects\STC32G_ADC.obj",
    ".\Objects\STC32G_CAN.obj",
    ".\Objects\STC32G_Clock.obj",
    ".\Objects\STC32G_Compare.obj",
    ".\Objects\STC32G_Delay.obj",
    ".\Objects\STC32G_DMA.obj",
    ".\Objects\STC32G_EEPROM.obj",
    ".\Objects\STC32G_Exti.obj",
    ".\Objects\STC32G_GPIO.obj",
    ".\Objects\STC32G_I2C.obj",
    ".\Objects\STC32G_LCM.obj",
    ".\Objects\STC32G_LIN.obj",
    ".\Objects\STC32G_NVIC.obj",
    ".\Objects\STC32G_PWM.obj",
    ".\Objects\STC32G_RTC.obj",
    ".\Objects\STC32G_Soft_I2C.obj",
    ".\Objects\STC32G_Soft_UART.obj",
    ".\Objects\STC32G_SPI.obj",
    ".\Objects\STC32G_Timer.obj",
    ".\Objects\STC32G_UART.obj",
    ".\Objects\STC32G_USART.obj",
    ".\Objects\STC32G_WDT.obj",
    ".\Objects\STC32G_ADC_Isr.obj",
    ".\Objects\STC32G_CAN_Isr.obj",
    ".\Objects\STC32G_Compare_Isr.obj",
    ".\Objects\STC32G_DMA_Isr.obj",
    ".\Objects\STC32G_Exti_Isr.obj",
    ".\Objects\STC32G_GPIO_Isr.obj",
    ".\Objects\STC32G_I2C_Isr.obj",
    ".\Objects\STC32G_LCM_Isr.obj",
    ".\Objects\STC32G_LIN_Isr.obj",
    ".\Objects\STC32G_PWM_Isr.obj",
    ".\Objects\STC32G_RTC_Isr.obj",
    ".\Objects\STC32G_SPI_Isr.obj",
    ".\Objects\STC32G_Timer_Isr.obj",
    ".\Objects\STC32G_UART_Isr.obj",
    ".\Objects\canfestival_can.obj",
    ".\Objects\canfestival_timer.obj",
    ".\Objects\dcf.obj",
    ".\Objects\emcy.obj",
    ".\Objects\lifegrd.obj",
    ".\Objects\lss.obj",
    ".\Objects\nmtMaster.obj",
    ".\Objects\nmtSlave.obj",
    ".\Objects\objacces.obj",
    ".\Objects\pdo.obj",
    ".\Objects\sdo.obj",
    ".\Objects\states.obj",
    ".\Objects\sync.obj",
    ".\Objects\timer.obj",
    ".\Objects\ObjDict.obj"
    TO ".\Objects\FreeRTOS_Demo"
    PRINT(".\Listings\FreeRTOS_Demo.map") CASE DISABLEWARNING (16, 57)
    REMOVEUNUSED
    CLASSES (EDATA (0x0-0xFFF),
    HDATA (0x0-0xFFF))
    *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _nop_?_
        MODULE:  .\Objects\STC32G_ADC.obj (STC32G_ADC)
    *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _nop_?_
        MODULE:  .\Objects\STC32G_EEPROM.obj (STC32G_EEPROM)
    ******************************************************************************
    * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 1844H BYTE (3503%) *
    ******************************************************************************
    Program Size: data=14.4 edata+hdata=3832 xdata=2791 const=4040 code=43502
    *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _nop_?_
        MODULE:  .\Objects\STC32G_ADC.obj (STC32G_ADC)
    *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _nop_?_
        MODULE:  .\Objects\STC32G_EEPROM.obj (STC32G_EEPROM)
    *** ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
        LIMIT:   0800H BYTES
    Target not created.
    Build Time Elapsed:  00:00:17
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1337

    回帖

    4159

    积分

    论坛元老

    积分
    4159
    发表于 2023-10-12 13:15:31 | 显示全部楼层
    STC32G库函数例程包、STC32G实验箱例程包里面的CAN总线收发例子都可以参考。
    要保证收发节点的波特率是一致的。
    截图202310121313518193.jpg
    另外你用的编译器没有注册,试用版有2K的代码限制。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-13 10:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    7

    回帖

    54

    积分

    注册会员

    积分
    54
     楼主| 发表于 2023-10-14 15:42:34 | 显示全部楼层
    库函数例程都是C语言的我无法使用,我的主程序是用汇编写的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-13 10:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    7

    回帖

    54

    积分

    注册会员

    积分
    54
     楼主| 发表于 2023-10-14 15:48:20 | 显示全部楼层
    我用标准帧改扩展帧,出现最后一个数据变成EF或者AF不知道什么原因?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1337

    回帖

    4159

    积分

    论坛元老

    积分
    4159
    发表于 2023-10-25 18:06:56 | 显示全部楼层
    CAN总线标准帧扩展帧收发例子-C语言与汇编
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4762
    使用汇编语言进行CAN总线通信开发,可以参考上面这个帖子的例子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1337

    回帖

    4159

    积分

    论坛元老

    积分
    4159
    发表于 2023-10-25 18:09:08 | 显示全部楼层
    477927257 发表于 2023-10-12 12:10
    运行官方例程出现下列问题Rebuild target 'FreeRTOS_STC32G_Demo'
    compiling croutine.c...
    compiling even ...

    出现下面这个错误提示,说明你的编译器没有注册或者注册码过期。

    ******************************************************************************
    * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 1844H BYTE (3503%) *
    ******************************************************************************

    Keil试用版有2K(0800H)的代码量限制,代码超过2K的需要注册后才能正常编译。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-14 21:19 , Processed in 0.069994 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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