boart test board
Dependencies: USBDevice mbed-dev lwip
Fork of USBSerial_HelloWorld by
main.cpp@23:121b78470d39, 2018-08-03 (annotated)
- Committer:
- ua1arn
- Date:
- Fri Aug 03 05:41:14 2018 +0000
- Revision:
- 23:121b78470d39
- Parent:
- 21:85a0f94a84cd
mistyped
Who changed what in which revision?
User | Revision | Line number | New 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 | } |