OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4117|回复: 4

关于MATLAB发送数据UART接收的问题

[复制链接]

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-4-2
在线时间
7 小时
发表于 2016-4-28 22:05:29 | 显示全部楼层 |阅读模式
10金钱
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上该怎么改





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-4-2
在线时间
7 小时
 楼主| 发表于 2016-4-28 23:25:40 | 显示全部楼层
求求各位帮忙,很急,我们比赛要用的,现在就是卡在这边,没法发送数据
回复

使用道具 举报

4

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2015-12-11
在线时间
57 小时
发表于 2016-4-28 23:31:53 | 显示全部楼层
你把usb转ttl的收发两端连起来,用matlab发送数据,看能不能收到,收到的格式是什么样的
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-4-2
在线时间
7 小时
 楼主| 发表于 2016-4-28 23:50:02 | 显示全部楼层
渭城朝雨 发表于 2016-4-28 23:31
你把usb转ttl的收发两端连起来,用matlab发送数据,看能不能收到,收到的格式是什么样的

抱歉我有点不太懂usb转ttl是什么,是rs232那个接口还是哪里?是指用根两头都是usb接口的线来连着电脑的两个串口,一个串口发送,另一个串口接收吗?
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-4-2
在线时间
7 小时
 楼主| 发表于 2016-4-29 15:15:23 | 显示全部楼层
各位求帮忙啊,我是真没办法了,试了试labview都失败了,c/c++串口也不会,更别提联合编程.................我真不知道该怎么办了,求求各位,这个搞不定我们比赛真要gg了.......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 03:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表