官方网站 https://canfestival.org/index.html.en
非官方的下载地址
GitHub - ljessendk/CanFestival
每个版本的源码会有些差异,移植代码的时候最好把源码也一并移植
以下使用硬石h743开发板, 并使用TIM8作为FDCAN1的定时器
STM32CubeMax
设置APB1的频率为200MHz,TIM的Prescaler=7,Period=199, Repetition=0,
使得TIM的频率为200MHz/(7+1)/(199+1)/(1+1)=125KHz,并打开中断
打开FDCAN1,默认配置
生成代码后
将canfestival源码的src和include文件夹到新建的Middleware/canfestival里
incldue里的文件夹只保留AVR其余删除,AVR里只保留 applicfg.h,canfestival.h,config.h,timerscfg.h 四个文件,另外incldue里的cm0, cm3, .gitignore 三个文件也删除
src里删除win32文件夹,并删除canfestival.pc.in ,.gitignore,Makefile.in,symbols.c 文件
最后保留的档案
其中timerscfg.h里的默认设定是
// The timer is incrementing every 8 us. #define MS_TO_TIMEVAL(ms) ((ms) * 125U) #define US_TO_TIMEVAL(us) ((us)>>3)
也就是我们TIM8的频率设定的125KHz
另外config.h,applicfg.h里用不到的头文件注释掉
//#include <avr/interrupt.h> //#include <avr/pgmspace.h>
修改CmakeList添加
#Can
include_directories(
# Middlewares
Middlewares/canfestival/include
Middlewares/canfestival/src
Middlewares/canfestival/include/AVR
)
file(GLOB_RECURSE SOURCES "startup/*.*" "Drivers/*.*" "Src/*.*" "Middlewares/*./")
未完...