-
GD32E508RE 64pin 芯片can问题
Hi,最近这个问题困扰我很长时间了。(采用 GD32E508RE, 64引脚) 1)将PA11, PA12配置为can功能:如下: [backcolor=rgb(255, 255, 255)][font="][size=15px]gpio_init(GPIOA,GPIO_MODE_AF_OD,GPIO_OSPEED_50MHZ,GPIO_PIN_11);[/size][/font][/backcolor] [backcolor=rgb(255, 255, 255)][font="][size=15px]gpio_init(GPIOA,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_12);[/size][/font][/backcolor][backcolor=rgb(255, 255, 255)][font="][size=15px] [/size][/font][/backcolor][backcolor=rgb(255, 255, 255)][/backcolor] 2)将timer0的ch0, ch1, ch2通道配置为PWM输出,电机驱动脉冲; timer0_ch3的pwm配置为触发 adc中断采样电机电流; 以上配置下,电机运行无任何问题。但是在PA11引脚出现与PWM频率一样的脉冲,造成can0_rx(PA11),出错,无法实现canopen通信。查原因,是因为timer0_ch3功能也在PA11引脚。于是,屏蔽timer0_ch3功能([color=#ff0000][backcolor=rgb(255, 255, 255)][font="][size=15px]timer_ocintpara.outputstate = TIMER_CCX_DISABLE;[/size][/font][/backcolor][/color][backcolor=rgb(255, 255, 255)][font="][size=15px][color=#ff0000] [/color][/size][/font][/backcolor]),改用timer3,设置为与timer0同步功能,让timer3触发ADC中断。出现2个结果,采样到的电机电流非常小,电流环没有闭环,电机电流会持续攀升直到过流保护;另外,因为屏蔽了timer0_ch3功能,本质上似乎禁止了PA11的复用功能,造成can无法产生接收中断(can通信是以接收中断来执行的)。 以上问题,有没有大神帮忙解答给些思路?如何才能既实现can通信(基于PA11,PA12),又可以正常电机运行? 谢谢。
12158浏览量 7回复量 关注量

问答