boart test board

Dependencies:   USBDevice mbed-dev lwip

Fork of USBSerial_HelloWorld by Compass Yap

Committer:
ua1arn
Date:
Fri Aug 03 05:41:14 2018 +0000
Revision:
23:121b78470d39
Parent:
21:85a0f94a84cd
mistyped

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 7:5e693654d5b4 1 #include "mbed.h"
samux 7:5e693654d5b4 2 #include "USBSerial.h"
ua1arn 21:85a0f94a84cd 3 #include "usbd_desc2.h"
ua1arn 11:eeb36b2beeda 4
ua1arn 12:d15a7d7feb12 5 static USBSerial pc(0xFFFF, 0x0002, 0x0001);
ua1arn 11:eeb36b2beeda 6
ua1arn 12:d15a7d7feb12 7 //static DigitalOut beep(PB_11);
ua1arn 12:d15a7d7feb12 8 static PwmOut beep(PB_11);
ua1arn 11:eeb36b2beeda 9
ua1arn 16:07f39e7a1cc2 10 /**TIM3 GPIO Configuration
ua1arn 16:07f39e7a1cc2 11 PA7 ------> TIM3_CH2
ua1arn 16:07f39e7a1cc2 12 PB0 ------> TIM3_CH3 !!!!
ua1arn 16:07f39e7a1cc2 13 PB1 ------> TIM3_CH4
ua1arn 16:07f39e7a1cc2 14 PB4 ------> TIM3_CH1
ua1arn 16:07f39e7a1cc2 15 */
ua1arn 16:07f39e7a1cc2 16 /**TIM4 GPIO Configuration
ua1arn 16:07f39e7a1cc2 17 PD12 ------> TIM4_CH1
ua1arn 16:07f39e7a1cc2 18 PD13 ------> TIM4_CH2
ua1arn 16:07f39e7a1cc2 19 */
ua1arn 20:4b2a3c310b61 20 //static DigitalIn button(PE_2);
ua1arn 20:4b2a3c310b61 21 //static DigitalIn opn_sw(PD_7);
ua1arn 16:07f39e7a1cc2 22 /*
ua1arn 12:d15a7d7feb12 23 static DigitalOut din(PA_7);
ua1arn 12:d15a7d7feb12 24 static DigitalOut din_light(PB_1);
ua1arn 12:d15a7d7feb12 25 static DigitalOut ud_pwm(PD_12);
ua1arn 12:d15a7d7feb12 26 static DigitalOut lr_pwm(PD_13);
ua1arn 16:07f39e7a1cc2 27 */
ua1arn 20:4b2a3c310b61 28 //static Serial bt(PG_14, PG_9, 9600); // tx, rx USART6 work
ua1arn 20:4b2a3c310b61 29 //static Serial rfid(PD_5, PD_6, 9600); // tx, rx USART2 work
ua1arn 20:4b2a3c310b61 30 //static Serial wifi(PA_9, PA_10, 9600); // tx, rx USART1 work
ua1arn 20:4b2a3c310b61 31 //static Serial fifi2(PB_10, PC_5, 9600); // tx, rx USART3 - overlap with STDIO USART
ua1arn 12:d15a7d7feb12 32
ua1arn 16:07f39e7a1cc2 33 #define I2CADDR1 0xBE // 7 bits: 0x5F
ua1arn 16:07f39e7a1cc2 34 #define I2CADDR2 0xD6 // 7 bits: 0x6B
ua1arn 12:d15a7d7feb12 35
ua1arn 15:825cce18de03 36 // LwIP timers support
ua1arn 16:07f39e7a1cc2 37 extern "C" uint32_t sys_now()
ua1arn 16:07f39e7a1cc2 38 {
ua1arn 16:07f39e7a1cc2 39 return 0;
ua1arn 16:07f39e7a1cc2 40 }
ua1arn 16:07f39e7a1cc2 41
ua1arn 15:825cce18de03 42
ua1arn 12:d15a7d7feb12 43
ua1arn 20:4b2a3c310b61 44 //static I2C i2c(PB_9, PB_8);
ua1arn 11:eeb36b2beeda 45
ua1arn 11:eeb36b2beeda 46 int main(void)
ua1arn 11:eeb36b2beeda 47 {
ua1arn 21:85a0f94a84cd 48 usbd_descriptors_initialize(0);
ua1arn 12:d15a7d7feb12 49 //wifi.baud(115200);
ua1arn 12:d15a7d7feb12 50 //wifi2.baud(115200);
ua1arn 16:07f39e7a1cc2 51
ua1arn 19:8b7595ced647 52 //beep.period_us(200000);
ua1arn 19:8b7595ced647 53 //beep.write((float) 0.001); // duty
ua1arn 16:07f39e7a1cc2 54 /*
ua1arn 12:d15a7d7feb12 55 din = 1;
ua1arn 12:d15a7d7feb12 56 din_light = 1;
ua1arn 12:d15a7d7feb12 57 ud_pwm = 1;
ua1arn 12:d15a7d7feb12 58 lr_pwm = 1;
ua1arn 16:07f39e7a1cc2 59 */
ua1arn 11:eeb36b2beeda 60 int i = 1;
ua1arn 11:eeb36b2beeda 61 int devices_found;
ua1arn 11:eeb36b2beeda 62 uint8_t curr_addr;
ua1arn 11:eeb36b2beeda 63 char data[1] = {'\0'};
ua1arn 11:eeb36b2beeda 64 pc.printf("\r\n");
ua1arn 11:eeb36b2beeda 65 pc.printf("Program begin\r\n");
ua1arn 19:8b7595ced647 66 wait(1);
ua1arn 19:8b7595ced647 67 uint32_t ref;
ua1arn 20:4b2a3c310b61 68 volatile uint32_t * const fmcbase = (volatile uint32_t *) 0xD0000000; // FMC_Bank5_6 memory window
ua1arn 20:4b2a3c310b61 69
ua1arn 19:8b7595ced647 70 fmcbase [0] = 0xDEADBEEF;
ua1arn 19:8b7595ced647 71 fmcbase [1] = ref = ~ 0xDEADBEEF;
ua1arn 19:8b7595ced647 72 fmcbase [2] = 0x01234567;
ua1arn 19:8b7595ced647 73 fmcbase [3] = 0x89ABCDEF;
ua1arn 20:4b2a3c310b61 74
ua1arn 20:4b2a3c310b61 75 #if 0
ua1arn 12:d15a7d7feb12 76 while(0) {
ua1arn 16:07f39e7a1cc2 77
ua1arn 11:eeb36b2beeda 78 devices_found = 0;
ua1arn 12:d15a7d7feb12 79 //beep = !beep;
ua1arn 16:07f39e7a1cc2 80
ua1arn 11:eeb36b2beeda 81 for (i = 0; i < 128; i++) {
ua1arn 11:eeb36b2beeda 82 curr_addr = i << 1;
ua1arn 11:eeb36b2beeda 83 if (!i2c.write(curr_addr, data, 1)) {
ua1arn 11:eeb36b2beeda 84 pc.printf("found device at 0x%x\r\n", curr_addr);
ua1arn 11:eeb36b2beeda 85 devices_found++;
ua1arn 11:eeb36b2beeda 86 }
ua1arn 11:eeb36b2beeda 87 wait(0.2);
ua1arn 11:eeb36b2beeda 88 }
ua1arn 16:07f39e7a1cc2 89
ua1arn 11:eeb36b2beeda 90 pc.printf("%d devices found\r\n", devices_found);
ua1arn 19:8b7595ced647 91 wait(2);
ua1arn 11:eeb36b2beeda 92 }
ua1arn 20:4b2a3c310b61 93 #endif
ua1arn 19:8b7595ced647 94
ua1arn 11:eeb36b2beeda 95 while(1) {
ua1arn 19:8b7595ced647 96 //beep.period_us(20000);
ua1arn 20:4b2a3c310b61 97 pc.printf("I am a virtual serial port - phase a1\r\n");
ua1arn 20:4b2a3c310b61 98 //pc.printf("I am a virtual serial port - phase a1, btn=%d\r\n", (int) opn_sw.read());
ua1arn 19:8b7595ced647 99 wait((float)0.2);
ua1arn 19:8b7595ced647 100 //beep.period_us(5000);
ua1arn 20:4b2a3c310b61 101 pc.printf("I am a virtual serial port - phase a2\r\n");
ua1arn 20:4b2a3c310b61 102 //pc.printf("I am a virtual serial port - phase a2, btn=%d\r\n", (int) opn_sw.read());
ua1arn 19:8b7595ced647 103 wait((float)0.2);
ua1arn 19:8b7595ced647 104 //beep.period_us(2000);
ua1arn 20:4b2a3c310b61 105 pc.printf("%08X %08X %08X %08X (ref=%08X, %s)\r\n", (unsigned) fmcbase [0], (unsigned) fmcbase [1], (unsigned) fmcbase [2], (unsigned) fmcbase [3], (unsigned) ref, ref == fmcbase [1] ? "Ok" : "Bad");
ua1arn 19:8b7595ced647 106 wait((float)0.2);
ua1arn 19:8b7595ced647 107 ++ ref;
ua1arn 19:8b7595ced647 108 ++ fmcbase [1];
samux 7:5e693654d5b4 109 }
samux 7:5e693654d5b4 110 }