一、接上文的补充
(1)超声波移植补充
上文不是说超声波的移植代码一定要在syscfg里面按照它的文件名称配置好了之后才能使用那个底层文件吗。我后来在移植按键、LED、蜂鸣器的时候发现,我可以写代码的时候不用那个宏定义也是可以的。也就是说,后续有时间可以修改底层文件,可以从syscfg上面不设置这么复杂的名字去修改,也可以直接改底层文件就是不用这么复杂的文件名称,直接换GPIOB...后面有时间可以试一下,由于任务关系我现在得要移植下一个文件。
超声波的移植用到了TIMA0这个定时器,定时器是根据时钟树的配置而来的,我后面的九轴的测量也用到了时钟树,虽然我现在在代码里面没有看出来九轴到底用到了时钟树的哪个部分,所以现在两个文件移植在一起我不知道如何修改我的时钟树。
(2)九轴移植补充
在移植超声波的时候我用的是视频里面移植过来的空文件,该文件应该是对时钟树没有进行修改的。在移植超声波就没有任何的影响,但是在移植九轴的时候就直接卡住一个数值了。后面我在上一届的代码里面进行修改,我发现把上一届的时钟树修改之后和没修改之前也产生了变化。修改之后的现象跟我移植空文件的九轴一模一样,所以我判断是时钟树的问题。但是后来我又在空文件配置了时钟树,结果还是出现像之前一样的问题,最终我也没有解决出来,后续有时间可以研究一下。但是可以判定代码没有问题,应该是syscfg配置的问题。
二、九轴移植具体步骤
三、按键移植
(1)注意
上一届使用的按键出现了两个问题导致第二个按键和第四个按键一直安不出来。1、第二个按键使用的是PA18,但是这个按键的功能超级复杂,所以一般是不使用这个按键的。如果要使用的话要把J8的跳线帽拔掉才能单独使用PA18的引脚,如果不拔掉的话就只能使用左侧的按键,但是其他几个按键就使用不了了,所以不建议使用PA18。2、在配置的时候把第四个按键配置成了input这就导致按键=0时的逻辑执行不通。
按键的使用是用到了时钟树的,因此也就解答了九轴用的GPIO的SCL和SDA,超声波也是用的GPIO的TRIG和ECHO,所以为什么时钟树不同就导致九轴和超声波的运行效果不同。
还有一个问题就是上文提到的,不知道为什么文件都移植好了,下载编译包括烧录也没有问题,但就是会存在找不到文件的问题。这个问题是因为在使用syscfg工具的时候,没有在keil的syscfg配置界面,没有在这个界面还修改了端口的配置然后保存的时候也不在keil的syscfg界面这就会导致后面找不到文件。还有一种情况就是配置好了之后,没有在syscfg界面进行编译,这也会造成在后面找不到文件。