Thomas Hamain
/
Nucleo_printf
Diff: main.cpp
- Revision:
- 0:55f43c87934f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat May 05 17:33:28 2018 +0000 @@ -0,0 +1,52 @@ +#include "mbed.h" + +//------------------------------------ +// Hyperterminal configuration +// 9600 bauds, 8-bit data, no parity +//------------------------------------ + +UARTSerial driver(D1,D0,9600); +uint16_t crc16(uint8_t *packet, int nBytes); + +int main() +{ + uint8_t packet[5] = {0x80,25}; + uint8_t response[48]; + uint8_t i,to=4; + uint16_t crc; + + driver.write(packet,2); + driver.read(response,to); + + for(i=0;i<to;i++){ + printf("%d",response[i]);} + + + /*crc = crc16(packet,3); + packet[3] = crc>>8; + packet[4] = crc;*/ + + /* + printf("CRC16 : 0x%02x 0x%02x\n",packet[3],packet[4]); + printf("0x%02x\n",driver.write(packet,5));*/ + + +} + +uint16_t crc16(uint8_t *packet, int nBytes) { + uint8_t byte,bit; + uint16_t crc=0; + for (byte = 0; byte < nBytes; byte++) { + crc = crc ^ (packet[byte] << 8); + + for (bit = 0; bit < 8; bit++) { + if (crc & 0x8000) { + crc = (crc << 1) ^ 0x1021; + } else { + crc = crc << 1; + } + } + } + printf("crc16 : 0x%04x \n",crc); +return crc; +}