MATLAB打开串口后,可以接受数据,但是发送就不行,我用XCOM发送数据后可以在LCD屏幕上显示,但是MATLAB上用fprintf和fwrite发送就没法发送,LCD上没法显示。是不是MATLAB发送的时候需要结尾加上0x0d,可是如何用fprintf和fwrite在结尾添加0x0d?
STM32程序
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
int main(void)
{
u8 t;
u32 len;
u8 lcd_id[12];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
uart_init(115200);
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//
LCD_Clear(BLUE);
POINT_COLOR=RED;
LCD_ShowString(30,40,210,24,24,"Explorer STM32F4");
LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,lcd_id);
LCD_ShowString(30,130,200,12,12,"2014/5/4");
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
for(t=0;t<len;t++)
{
LCD_ShowString(30,170+t*20,len,12,12,&USART_RX_BUF[t]);
USART_SendData(USART1, USART_RX_BUF[t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
USART_RX_STA=0;
}
}
}
MATLAB程序
scom=serial('COM4');
set(scom,'BaudRate', 115200,'DataBits',8,'StopBits',1,'Parity',...
'none');
scom.inputBufferSize=31*1024;
scom.Terminator='LF';
scom.timeout=15;
fopen(scom);
然后之后我fprintf、fwrite都不行了,用XCOM可以显示数据。请问matlab上该怎么改
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>