Mbed library to get location informatiuon from GYSFDMAXB
Dependents: nucleo_GPS_rev3 STM32_MR_include_IM_rev2
秋月電子のGPS受信機キット 1PPS出力付き 「みちびき」対応からデータを取得するためのライブラリです クラスを宣言した後、変数のlongtitude,latitudeを読むことでデータを取得できます。更新は自動です。 googleで検索できるdd.dddd°表記となっています。
GPS.h@3:801a6efccd1e, 2017-07-30 (annotated)
- Committer:
- kim1212
- Date:
- Sun Jul 30 13:25:57 2017 +0000
- Revision:
- 3:801a6efccd1e
- Parent:
- 1:68601d2af8a5
?????????????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kim1212 | 0:4cc88ba7719b | 1 | #ifndef GPS_H |
kim1212 | 0:4cc88ba7719b | 2 | #define GPS_H |
kim1212 | 0:4cc88ba7719b | 3 | |
kim1212 | 1:68601d2af8a5 | 4 | |
kim1212 | 0:4cc88ba7719b | 5 | |
kim1212 | 0:4cc88ba7719b | 6 | |
kim1212 | 0:4cc88ba7719b | 7 | //GPS Library for GYSFDMAXB |
kim1212 | 3:801a6efccd1e | 8 | /* |
kim1212 | 3:801a6efccd1e | 9 | 秋月電子にて販売されているGYSFDMAXB(GPS受信機1pps出力付きみちびき対応)用ライブラリです |
kim1212 | 3:801a6efccd1e | 10 | Uartの受信割り込みを用いて、センテンスを受信し始めると自動的に処理を行い、緯度経度を計算します。 |
kim1212 | 0:4cc88ba7719b | 11 | |
kim1212 | 3:801a6efccd1e | 12 | ※注意 割り込み設定を行わないと正常に動作しません。mbedの場合は全ての割りこみが同じ優先順位なので優先順位の衝突が生じます |
kim1212 | 3:801a6efccd1e | 13 | STMマイコンの場合は、 |
kim1212 | 3:801a6efccd1e | 14 | NVIC_SetPriority(USART3_IRQn,2); |
kim1212 | 3:801a6efccd1e | 15 | などとmain内に追加します。usart3とは、Serial3_TXとSerial3_RXを使っているためです。Serial1_TX,RXを使用するなら、usart1と入れてください |
kim1212 | 3:801a6efccd1e | 16 | '2'は、優先順位のことです。mbedではデフォルトで全て2に設定されています(stmマイコンの場合)。0が一番優先順位が高く、1,2,3の順に低くなります。 |
kim1212 | 3:801a6efccd1e | 17 | |
kim1212 | 3:801a6efccd1e | 18 | |
kim1212 | 3:801a6efccd1e | 19 | |
kim1212 | 3:801a6efccd1e | 20 | |
kim1212 | 3:801a6efccd1e | 21 | */ |
kim1212 | 3:801a6efccd1e | 22 | |
kim1212 | 3:801a6efccd1e | 23 | #define GPSTX p28//GPSのTXピン |
kim1212 | 3:801a6efccd1e | 24 | #define GPSRX p27//GPSのRXピン |
kim1212 | 0:4cc88ba7719b | 25 | #define GPSBAUD 115200//GPSのボーレート |
kim1212 | 0:4cc88ba7719b | 26 | #define ODR 10//max 10Hz 更新周期 |
kim1212 | 0:4cc88ba7719b | 27 | |
kim1212 | 0:4cc88ba7719b | 28 | class GPS { |
kim1212 | 0:4cc88ba7719b | 29 | public: |
kim1212 | 0:4cc88ba7719b | 30 | GPS(PinName gpstx,PinName gpsrx); |
kim1212 | 0:4cc88ba7719b | 31 | |
kim1212 | 0:4cc88ba7719b | 32 | void gpscmd(char *command); |
kim1212 | 0:4cc88ba7719b | 33 | void getgps(); |
kim1212 | 0:4cc88ba7719b | 34 | |
kim1212 | 0:4cc88ba7719b | 35 | float longtitude;//緯度 |
kim1212 | 0:4cc88ba7719b | 36 | float latitude;//経度 |
kim1212 | 0:4cc88ba7719b | 37 | //上の二つは自動的に更新される この二つを読むことでデータ取得が出来る |
kim1212 | 0:4cc88ba7719b | 38 | |
kim1212 | 0:4cc88ba7719b | 39 | bool result;//trueで成功、falseで失敗 |
kim1212 | 0:4cc88ba7719b | 40 | char buf[100]; |
kim1212 | 0:4cc88ba7719b | 41 | |
kim1212 | 0:4cc88ba7719b | 42 | private: |
kim1212 | 0:4cc88ba7719b | 43 | Serial _gps; |
kim1212 | 0:4cc88ba7719b | 44 | }; |
kim1212 | 0:4cc88ba7719b | 45 | |
kim1212 | 0:4cc88ba7719b | 46 | #endif |