rtthread最新的bsp代码里面已经有了N32G457的can驱动,我们可以通过git拉取最新的代码使用。 使用rtthread device的api就可以操作can设备。
mdk或者gcc编译方式
第1步,获取bsp代码
使用git工具(git 命令行或者图形化工具TortoiseGit)从github或者gitee
第2步,分离打包出bsp和rtthread内核代码
进入到rtthread的bsp源码/bsp/n32g452xx 目录下。(n32g452 和n32g457 是统一系列芯片,库函数是可以通用的)
分离打包的目的是为了后面代码的修改不会影响到这个git目录的数据,方便下次拉去新的版本,同时可以将bsp目录的驱动和rtthread复制到一个单独的路径,可以放在任何位置使用。
将n32g452xx-mini-system目录复制到一个新的目录n32g45x-test,然后进入n32g45x-test打开env目录。
在env中执行
开始分离出打包bsp和rtthread内核代码到dist目录中,分离打包的代码可以复制到任何目录使用,因为内核代码和bsp已经放到一起去了。
分离打包的代码可能存在Kconfig路径错误或者SConscript路径错误,只要修改一下即可。
。。。 第3步,配置rtthread内核和bsp驱动
进入打包好的bsp目录,使用env工具
输入命令进入Kconfig配置
选择 → Hardware Drivers Config → On-chip Peripheral Drivers
然后打开CAN1 和CAN2的驱动
打开CAN1 和CAN2的驱动
打开CAN1 和CAN2的驱动
第4步,修改can复用引脚,添加测试代码
然后找到bsp目录 board/msp 下面的 n32_msp.c 文件,
修改can1和can2的引脚位置,代码如下
这段代码将以前的引脚注释掉了,重映射使用了新的CAN引脚。
CAN1 TX PD9
CAN1 RX PD8 CAN2 TX PB13
CAN2 RX PB12
按这个线序接上CAN收发器 JTA1050之类的模块,然后把CAN1 CAN2的H L接到同一总线上,因为CAN至少需要两个设备(需要另外一个设备回复ACK)
这样接线,或者使用USB转CAN工具也可以。
|