1. 程式人生 > 其它 >RISC-V MCU開發教程之與Matlab的串列埠通訊

RISC-V MCU開發教程之與Matlab的串列埠通訊

赤菟V307(CH32V307)是一款RISC-V核心的MCU,搭載的是沁恆自研RISC-V核心青稞V4F,最高主頻144MHz,支援單精度浮點運算(FPU)。
Matlab支援串列埠通訊,可以接收串列埠的資料,並進行資料處理,本文主要講解赤菟V307與Matlab的串列埠通訊,並進行快速傅立葉變換。

1、定義串列埠協議

為了更好的接收並處理串列埠資料,需要定製一定的傳輸協議:

  • 每個資料以 ‘,’(ASCII:44)結束
  • 整組資料以 ‘$’(ASCII:36) 結束
  • 浮點統一放大到整數

2、赤菟V307端程式設計

赤菟V307傳送一段訊號,該訊號由幅度為0.4的直流訊號+幅度為0.5,頻率為50Hz的訊號+幅度為,頻率為100Hz的訊號+幅度為0.5,頻率為150Hz的訊號組成,取樣率為1000Hz,一共傳送1000個取樣值。
程式碼如下:

3、Matlab端程式設計

matlab支援串列埠接收資料,根據定義的協議,解析資料,支援正負整數。具體程式碼如下:

4、結果驗證

Matlab接收資料顯示如下:

經過Matlab的快速傅立葉變換結果如下:

打通了赤菟V307和Matlab之間的“任督二脈”,後面可以愉快的驗證赤菟V307的FFT以及相關的數字訊號處理演算法啦~~~~