Abdelmalek BELLOULA
/
mbed_blinko
TEST 485
main.cpp@0:84c281baac9c, 2020-03-05 (annotated)
- Committer:
- belloula
- Date:
- Thu Mar 05 10:28:10 2020 +0000
- Revision:
- 0:84c281baac9c
TEST UART 485
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
belloula | 0:84c281baac9c | 1 | #include "mbed.h" |
belloula | 0:84c281baac9c | 2 | #include <RS485.h> |
belloula | 0:84c281baac9c | 3 | Serial pc(USBTX, USBRX); |
belloula | 0:84c281baac9c | 4 | RS485 RS485(p13,p14,p15); // Tx, Rx , !RE and DE MAX485 pin |
belloula | 0:84c281baac9c | 5 | |
belloula | 0:84c281baac9c | 6 | DigitalOut ho(p15); // this pin should be connected to !RE and DE |
belloula | 0:84c281baac9c | 7 | typedef uint8_t byte; |
belloula | 0:84c281baac9c | 8 | |
belloula | 0:84c281baac9c | 9 | byte regvalue[9]; |
belloula | 0:84c281baac9c | 10 | //byte data[9] = {0x01,0x04,0x00,0x48,0x00,0x02,0xf1,0xdd};//your data |
belloula | 0:84c281baac9c | 11 | byte data[9] = {0x02,0x05,0x01,0x49,0x01,0x03,0xf2,0xde};//your data |
belloula | 0:84c281baac9c | 12 | int main() |
belloula | 0:84c281baac9c | 13 | { |
belloula | 0:84c281baac9c | 14 | pc.baud(115200); |
belloula | 0:84c281baac9c | 15 | pc.printf("main\n"); |
belloula | 0:84c281baac9c | 16 | while(1) { |
belloula | 0:84c281baac9c | 17 | pc.printf("Starting\n"); |
belloula | 0:84c281baac9c | 18 | ho = 1; // Enable sending on MAX485 |
belloula | 0:84c281baac9c | 19 | RS485.sendMsg(data,sizeof(data)); |
belloula | 0:84c281baac9c | 20 | wait_ms(600); // Must wait for all the data to be sent |
belloula | 0:84c281baac9c | 21 | ho = 0; // Enable receiving on MAX485 |
belloula | 0:84c281baac9c | 22 | pc.printf("Getting data\n"); |
belloula | 0:84c281baac9c | 23 | if(RS485.readable() >0){ |
belloula | 0:84c281baac9c | 24 | memset(regvalue,0,sizeof(regvalue)); |
belloula | 0:84c281baac9c | 25 | wait_ms(200); |
belloula | 0:84c281baac9c | 26 | RS485.recvMsg(regvalue,sizeof(data),500); |
belloula | 0:84c281baac9c | 27 | wait_ms(200); |
belloula | 0:84c281baac9c | 28 | for (int count = 0; count < 9; count++) { |
belloula | 0:84c281baac9c | 29 | pc.printf("%X - ", regvalue[count]); |
belloula | 0:84c281baac9c | 30 | } |
belloula | 0:84c281baac9c | 31 | }else printf("No Data\n"); |
belloula | 0:84c281baac9c | 32 | printf("Done\n"); |
belloula | 0:84c281baac9c | 33 | wait_ms(1000); |
belloula | 0:84c281baac9c | 34 | } |
belloula | 0:84c281baac9c | 35 | } |