2.4使用MCC配置的时钟为68.1725MHz不知为何无法配置成70MHz,但是看手册和例程,手动配置是可以实现的,不知这是什么原因。ADC和PWM时钟使用的独立时钟,频率为117.92MHz。系统时钟与ADC、PWM时钟分开是这款DSC的优势,首先相互不干扰,第二,作为电源响应速度是非常重要的,这种方式可以有效解决很多问题,这也是我一直在关注microchipdsPIC芯片的原因。时钟问题就这样吧,不能耗费过多的时间研究。

2.5IO配置在这个软件里比较方便,可视化界面,不需要研究寄存器了。而且IO配置较为简单,目前所用到的是开关量输入输出,模拟输入,通信口等。串口通信配置两路,串口1给触摸屏,串口2备用。波特率习惯性的配置成9600,8bit,1校验,在这里又省去了计算。。。配置到这里的时候,就开始编译了,自动生成的代码没有问题,然后看着生成代码里有注释,调用起来比较方便。串口屏的驱动程序直接在官网上下载的51例程,把底层驱动程序改动了一下,像串口收发数据这样的,其他的都不变。



串口屏的驱动程序引用了两个C文件,3个H文件,其他的都被我精简掉了,串口收发程序直接移植到自动生成的C文件里,如上图中,串口1接收中断程序里,直接把数据寄存器内容送入数据处理子程序queue_push();
2.6IIC配置的时候出现了一个问题 ,就是按照传统的思想,把7位地址和1位收发一起算到待发的数据寄存器里了,就是不好用,IIC一共挂有一个存贮器,时钟和温度传感器,还以为芯片有问题,后来一个个拆下来,还是不行。找来逻辑分析仪发现DSC发送的地址跟实际地址不一样,难道是配置错了?于是赶紧对照数据手册进行查错,貌似自动生成的代码没有问题啊。后来在不断的用逻辑分析仪捕捉数据的时候,发现填入的地址和输出的波形数据都被左移了,突然恍然大悟,实际上自动生成的代码里要求填入IIC器件的实际7位地址,具体到读写的时候,程序会进行自动处理,而且一开始把7位地址和收发位一起算到里面了。这导致地址一直不正确,更正后,立刻发现通讯正常,后续将另外几个器件焊接好,调试通过。使用新器件,坑很多啊。。。