LiuYang
获得 305 次赞
帮助过251人
手上的模块不能闲着,能连接的都连接上。 一般的定位模块都是通过串口连接,输出nm0183格式的数据,只要在mcu中解析就可以了。 这款北斗&gps模块也不例外,只比普通的gps模块多输出个bd开头的数据而已,格式都是一样的。 解析的函数封装到一个文件里了,不过只需要调用一个td3020c(gpsdata);就够了。 gpsdata就是串口获取到的定位模块的数据,解析后的结果保存在struct gps里。 可以在程序的任何地方调用。 附件在这里
翻箱倒柜,发现一个arduino接口的屏幕,正好可以用在nucleo上,那就不客气了。 其实nucleo的arduino接口引脚是不连续的,所以接这种屏幕速度上会受到一些影响。 lcd_d0 pa9 lcd_d1 pc7 lcd_d2 pa10 lcd_d3 pb3 lcd_d4 pb5 lcd_d5 pb4 lcd_d6 pb10 lcd_d7 pa8 lcd_rst pc1 lcd_cs pb0 lcd_rs pa4 lcd_wr pa1 lcd_rd pa0 不过毕竟能显示,就不管那么多了。 屏幕的主控是ssd1297的,所以初始化都是按照ssd1297来实现。 引脚定义的地方很多,也是最麻烦的,一定要对应上,要不就显示不了了。 最后附上hpp程序
都说stm32的i2c是有bug的,以前为了省事一直用模拟方式来实现i2c,所以没有遇到。 这次为了验证一下这个bug,特意使用了硬件方式操作i2c,经过了两个晚上的摸索,终于能够得到数据了。不敢独享,拿出来给遇到问题的朋友做参考。 图片就不上了,就是从taobao上买的hmc5883l的模块,i2c的两个脚和一个vcc、一个gnd,连接很简单。 同样封装成了c++的类,其实和c是一样的 其他的不用理会,主要的地方是地址。 硬件i2c配置是要的地址是8位的,而不是7位的,所以我特意写成了0x1e