4 years, 9 months ago.

serial textlcd not able to implement with ble? anyone tried before.

serial textlcd

#include "mbed.h"
#include "ble/BLE.h"
#include "CyclingSpeedAndCadenceService.h"
#include "ble/services/BatteryService.h"
#include "ble/services/DeviceInformationService.h"
//#include "SDFileSystem.h"
#include "SoftSerial.h"
#include "SerialLCD.h"

//SDFileSystem sd(D2, D1, D0, D3, "sd");
//SoftSerial SoftSerial(PinName D4, PinName NC, const char* name = NULL);
//SerialLCD Seriall(NC, D4);
BLE  ble;
Timer timer;
Timer t;
Timeout nopulses;
InterruptIn pulses(P0_7);
DigitalOut pulses2(P0_28);
const static char     DEVICE_NAME[]        = "Henrymeter";
static const uint16_t uuid16_list[]        = {GattService::UUID_CYCLING_SPEED_AND_CADENCE,

uint32_t c;
uint16_t oldvalue;
uint16_t min;
uint16_t r;
//const int blades = 6;
volatile long int rpmf;
volatile long int rpm;
uint16_t total=0;                                                         // init crank to 10revs
uint16_t totalizer;
volatile long int irritime= 0;
uint32_t nextWheel = 0;
uint32_t nextCrank = 0;
//char totalstring[10], flowstring[10]; // create string arrays
static volatile bool  triggerWheel = false;
static volatile bool  triggerCrank = false;
static volatile bool  afterreset = false;
void endprocess();
void timing();
void display();
void interup() ;
void onTick(void);
void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
    ble.gap().startAdvertising(); // restart advertising

void setup()

  mySerial.baud(9600); // set up serial port for 9600 baud
  wait(0.5); // wait for display to boot up
  mySerial.write(254); // cursor to beginning of first line

  mySerial.write("                "); // clear display
  mySerial.write("                ");
  mySerial.write(254); // cursor to beginning of first line

  mySerial.write("GPM=            "); // clear display + legends
  mySerial.write(254); // cursor to beginning of first line
  mySerial.write("Ac-inch=            ");

void loop() 
  temp = random(1000); // make some fake data
  rpm = random(10000);
float speed = (((rpmf/6)*60)/ blades) * 6.28f * 9 * 322.51*0.00026417;
  sprintf(flowstring,"%1.2f", speed); // create strings from the numbers
  sprintf(totalstring,"%1.2f",total*0.01); // right-justify to 4 spaces

  mySerial.write(254); // cursor to 7th position on first line
  mySerial.write(flowstring); // write out the RPM value

  mySerial.write(254); // cursor to 7th position on second line

  mySerial.write(totalstring); // write out the TEMP value
  wait(1); // short delay

Question relating to:

BLE Nano is the smallest Bluetooth 4.1 Low Energy (BLE) development board in the market. The core is Nordic nRF51822 (an ARM Cortex-M0 SoC plus BLE capability) running at 16MHz …

the lcd i am using can be found in teh following link: https://www.sparkfun.com/products/9067

posted by jayendra mishra 19 Oct 2016
Be the first to answer this question.