串口发送由stm32F4完成代码如下
输出为带毛刺正弦波
g_usart_rx_buf[0]=(int)(100*sin(times*ARC))+rand()%10-5;
g_usart_rx_buf[1]='\r';
g_usart_rx_buf[2]='\n';
HAL_UART_Transmit(&g_uart1_handle,(uint8_t*)g_usart_rx_buf,3,1000); /* 发送数据 */
while(__HAL_UART_GET_FLAG(&g_uart1_handle,UART_FLAG_TC)!=SET); /* 等待发送结束 */
times+=1;
if(times==360)
times=0;
if (times % 30 == 0) LED0_TOGGLE(); /* 闪烁LED,提示系统正在运行. */
delay_ms(10);
matlab串口接收代码如下:
打开串口:
s = serialport("COM3",115200,"Timeout",5,"FlowControl","hardware");%建立串口
串口接收:
data = read(s,3,"int8");%读取串口
将接收到的数据打印成波形:
plot(x,data(1),'-b.','MarkerSize',10);
hold on; %保持让上一个点显示
pause(0.05); %暂停,就可以看到点的变化走向
打印的波形如下图所示: