企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
` `使用FPGA采集数据,为验证数据正确性,尝试用串口将数据传到电脑显示,利用arduino的串口绘图器可以将图像画出来,一形象的查看数据的准确性。发送数据格式为:data1,data2,.....回车换行。 ` `以下利用arduino产生的两个正弦波形并通过串口绘图器绘制。 ``` #define ledPin 13 #define min ( 65536-(62500*0.5)) int dir = 1; int timer1_counter; int value = 0; void setup() { pinMode(ledPin, OUTPUT); noInterrupts(); TCCR1A = 0; TCCR1B = 0; //timer1_counter = 65536-(62500*0.5); //0.5s 定时器中断 timer1_counter = min; //预加载timer1 65536-16Mhz/256/2Hz TCNT1 = timer1_counter; TCCR1B |= (1 << CS12); TIMSK1 |= (1 << TOIE1); interrupts(); Serial.begin(9600); } ISR(TIMER1_OVF_vect) { digitalWrite(ledPin, digitalRead(ledPin) ^ 1); } float data1 = 0; float dd1,dd2; String temp = ""; void loop() { dd1 = 10*sin(data1); dd2 = 5*sin(data1); Serial.print(dd1); Serial.print(','); Serial.print(dd2); Serial.println(temp); data1+=0.1; delay(30); } ``` ` `现象: ![](https://img.kancloud.cn/ee/f5/eef5a51fba606ef96155a731d1aed9a5_1787x1005.png) ## 写通用函数 ` `为了使用画图,可以编写一个通用的函数,如下: ``` /** * 打开arduino的串口绘图器,调用该函数可将数组a中的数据分为几组画出来 */ void send2draw(float a[],int len) { for(int i =0;i<len;i++) { printf("%f",a[i]); if(i<len-1)printf(","); } printf("\r\n"); } ```