本帖最后由 Transformers 于 2020-8-13 22:51 编辑
活动快结束了,赶一下末班车。利用的是赛元SF95F8616。首先用易码魔方创建了一个工程,然后看了一下,功能挺强大。刚拿到板子我首先配置系统时钟,习惯试用8Mhz的晶振。所以配置成8Mhz。
配置完时钟,第一个想调试的功能是定时器。所以将TIM0的勾子打上勾。将时间配置成1ms进一次中断。
然后就是调试串口,拿到一个新的芯片我一开是就会先调试这两个功能。将UART0打上勾,然后配置主频8Mhz,中断接收允许波特率为115200。
为了方便调试,所以把printf给调出来。为了使多个串口都可以printf,我会自定义printf。
这时候,如果直接烧写程序printf是无法输出数据的,因为使能串口中断,中断里面没有配置。配置完成之后,printf能正常使用。
由于手头的i2c模块比较多,所以,我接下来会调试i2c。优先使用官方的硬件i2c。官方的i2c只有中断触发这一种。所以,我尝试着配置了一下。按照例程中那样。中断中配置一个变量,然后主函数中用while等待变量置1。但是调试失败了。所以最后还是选择软件i2c。将P04和P05配置成推挽输出。
这里使用的是mpu6050来做角度的测量。所以在工具栏里将,软件i2c所只用的函数写进去。
通过串口调试,软件i2c驱动成功。
然后就是配置oled,采用的spi的,spi的话,用软件模拟比较方便,所以就不使用硬件的了,所以没有尝试板子的硬件spi。将spi所用到的函数添加进去。
软件spi所用到的引脚全部配置成推挽输出。
测试spi能否正常的运行,经过测试,能正常显示参数。然后利用赛元的易码魔方图形化界面直接将各个模块的功能连接起来。
程序运行的流程一目了然。很直观。直接点击左上角的编译,可以直接输出hex文件,我没试过。我是生成keil工程然后再生成hex文件的。就出现了一个,这个警告不用改。直接烧入到板子里面去。
然后是通过串口配置修改oled上面的时间。时间的格式是固定的必须按照这个格式写。
串口这边会每隔一秒输出一个时间。按照输出的格式发送数据就不会乱。
gif显示测试一下效果。显示还是很正常的。这就是一个带有时间功能可配置的水平仪。妈妈再也不用担心我在工地上量尺寸的时候错过吃饭时间了。
/*****************************************************************/
最后说一下这个软件。我刚拿到板子的时候就开始用这个软件调试这个芯片了。这个软件在定义宏定义的时候,会把宏变成这样。
软件里面已经没有这几个宏了。删除之后,点生成工程源码,还是会重新生成这几个宏。
修改变量或者函数的时候只能一个一个修改,不能一起修改,不点确定然后切换别的函数,相当于没修改,我一开始就吃了这个亏,改了好几个。最后一看只修改了点了确定的那个。
还有在用户代码区自己写的代码还是会被软件生成的时候给删掉,最后我能都在软件里面操作。尽量不使用keil。
不过这个软件的优点也很明确,就是图形化编程,这样会大大减小出现逻辑错误的可能性。还是挺期待软件后期把bug全部清掉的样子。这时候可能比现在更好用,不过我用的时候,因为不熟练,所以花的时间比直接写花的时间更多。总的来说这个软件还是挺棒的。如果后期把芯片的所有的功能的例程添加进来就可以更加容易上手了。
|