@@ -51,12 +51,14 @@ Below I demonstrate the basic API provided by this library. However, I recommend
51
51
#include "AudioTools.h"
52
52
#include "stm32-i2s.h"
53
53
54
+ using namespace stm32_i2s;
55
+
54
56
SineWaveGenerator<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
55
57
I2SSettingsSTM32 i2s_settings;
56
58
int sample_rate = 8000;
57
59
int channels = 1;
58
60
59
- void readToTransmit(uint8_t *buffer, uint16_t byteCount) {
61
+ void readToTransmit(uint8_t *buffer, uint16_t byteCount, void* ) {
60
62
uint16_t samples = byteCount / 2;
61
63
int16_t *buffer_16 = (int16_t*) buffer;
62
64
for (uint j = 0; j < samples; j+=2) {
@@ -67,14 +69,16 @@ void readToTransmit(uint8_t *buffer, uint16_t byteCount) {
67
69
}
68
70
69
71
void setup() {
72
+ Serial.begin(115200);
70
73
sineWave.begin(channels, sample_rate, N_B4);
71
74
i2s_settings.sample_rate = I2S_AUDIOFREQ_8K;
72
- I2S.startI2STransmit(&i2s_settings, readToTransmit);
75
+ if (!I2S.beginWriteDMA(i2s_settings, readToTransmit)){
76
+ Serial.println("I2S Error");
77
+ }
73
78
}
74
79
75
- void loop() {
80
+ void loop() {}
76
81
77
- }
78
82
```
79
83
80
84
@@ -84,21 +88,24 @@ void loop() {
84
88
#include "AudioTools.h"
85
89
#include "stm32-i2s.h"
86
90
91
+ using namespace stm32_i2s;
92
+
87
93
CsvStream<int16_t> out(Serial, 2); // ASCII output stream
88
94
I2SSettingsSTM32 i2s_settings;
89
95
90
- void writeFromReceive(uint8_t *buffer, uint16_t byteCount){
96
+ void writeFromReceive(uint8_t *buffer, uint16_t byteCount, void* ){
91
97
out.write(buffer, byteCount);
92
98
}
93
99
94
100
void setup() {
101
+ Serial.begin(115200);
95
102
i2s_settings.sample_rate = I2S_AUDIOFREQ_8K;
96
- I2S.startI2SReceive(&i2s_settings, writeFromReceive, I2S_BUFFER_SIZE);
103
+ if (!I2s.beginReadDMA(i2s_settings, writeFromReceive){
104
+ Serial.println("I2S Error");
105
+ }
97
106
}
98
107
99
- void loop() {
100
-
101
- }
108
+ void loop() {}
102
109
103
110
```
104
111
0 commit comments