当前位置: 首页 > news >正文

MTALAB guide 串口简洁版1

文章目录

  • 前言
  • 二、串口guide
    • 1. 打开软件检测所有串口并更新的界面弹式菜单
    • 2. 选择串口
    • 3.打开串口
    • 4. 串口数据的发送
    • 5. 获取edit 发送窗口上的内容发送出去
    • 6.接收数据在edit 接收窗口上显示
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

项目需要:


提示:以下是本篇文章正文内容,下面案例可供参考

二、串口guide

1. 打开软件检测所有串口并更新的界面弹式菜单

% --- Executes just before UART1fig is made visible.
function UART1fig_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to UART1fig (see VARARGIN)% Choose default command line output for UART1fig
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes UART1fig wait for user response (see UIRESUME)
% uiwait(handles.figure1);% 获取所有可用的串口信息  global portsports = serialportlist;  % 检查是否有可用的串口  
if isempty(ports)  disp('没有检测到任何串口设备。');  
else  % 显示串口信息  for i = 1:length(ports)  fprintf('Port %d: %s\n', i, ports(i));  end  
end% 假设 handles.popupmenu1 是已经创建的 popupmenu 控件  
% 创建一个包含多个字符串的单元格数组  
% options = {'Option 1', 'Option 2', 'Option 3'};  % 将这个单元格数组设置为 popupmenu 的 'String' 属性  
set(handles.po_search_serial, 'String', ports);

在这里插入图片描述

在这里插入图片描述

2. 选择串口

% --- Executes on selection change in po_search_serial.
function po_search_serial_Callback(hObject, eventdata, handles)
% hObject    handle to po_search_serial (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: contents = cellstr(get(hObject,'String')) returns po_search_serial contents as cell array
%        contents{get(hObject,'Value')} returns selected item from po_search_serial
global varvar = get(handles.po_search_serial,'Value');switch varcase 1                        % 选中第一行disp('第一行');  case 2                        % 选中第二行disp('第二行'); case 3                        % 选中第三行disp('第三行'); 
end

根据鼠标选择弹式菜单里面的选项来确定是选定了那个COM

3.打开串口

% --- Executes on button press in PB_Open_Close_serial.
function PB_Open_Close_serial_Callback(hObject, eventdata, handles)
% hObject    handle to PB_Open_Close_serial (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% % 获取所有可用的串口信息  
% ports = serialportlist;  
%   
% % 检查是否有可用的串口  
% if isempty(ports)  
%     disp('没有检测到任何串口设备。');  
% else  
%     % 显示串口信息  
%     for i = 1:length(ports)  
%         fprintf('Port %d: %s\n', i, ports(i));  
%     end  
% end
% 
% % 假设 handles.popupmenu1 是已经创建的 popupmenu 控件  
% % 创建一个包含多个字符串的单元格数组  
% % options = {'Option 1', 'Option 2', 'Option 3'};  
%   
% % 将这个单元格数组设置为 popupmenu 的 'String' 属性  
% set(handles.po_search_serial, 'String', ports);
global portsglobal var% 获取所有可用的串口端口号  
portNames = {ports(var)}; % 这是一个单元数组  % 将单元数组转换为字符串数组(如果需要)  
portNamesStr = string(portNames); % 在 MATLAB R2016b 及更高版本中可用  % 显示端口号  
disp(portNamesStr);% 创建并打开串口  serialComName = portNamesStr;
serialBaudrate = 9600;
serialDataBit = 8;
serialCheckBit = 'none';
serialStopBit = 1;% 尝试打开串口
trySerial_Obj=serialport(serialComName,serialBaudrate,"Parity",serialCheckBit,"DataBits",serialDataBit,"StopBits",serialStopBit,"Timeout",1);text1 = '串口打开成功';disp(text1)catch% 串口打开失败text = '串口打开失败';disp(text)% 删除串口delete(Serial_Obj);
end

4. 串口数据的发送

% --- Executes on button press in pb_send_serial.
function pb_send_serial_Callback(hObject, eventdata, handles)
% hObject    handle to pb_send_serial (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global Serial_Obj
% 发送数据  
dataToSend = 'Hello, Serial Port!';  
write(Serial_Obj, dataToSend, "uint8");  

在这里插入图片描述

5. 获取edit 发送窗口上的内容发送出去

% --- Executes on button press in pb_send_serial.
function pb_send_serial_Callback(hObject, eventdata, handles)
% hObject    handle to pb_send_serial (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global Serial_Obj
% 发送数据  editContent = get(handles.ed_sent, 'String'); 
disp(editContent);
dataToSend = 'Hello, Serial Port!';  
disp(dataToSend);
write(Serial_Obj, editContent, "uint8");  

效果

在这里插入图片描述

6.接收数据在edit 接收窗口上显示

要思考在哪个时间开启接收 ,时间到了暂时休息


global Serial_Obj
receivedData = read(Serial_Obj, numBytesToRead, 'char');
set(handles.ed_receive, 'String',receivedData ); receivedDataStr = char(receivedData);  % 显示接收到的数据  
disp('Received Data:');  
disp(receivedDataStr);  

总结

学习使人快乐!
音乐使人愉悦!
日积月累使人充实和自信!


http://www.mrgr.cn/news/59530.html

相关文章:

  • c++——哈希表的模拟实现
  • 关于Java中**optional,stream,lambda**
  • 特殊主题短视频资源推荐
  • 好用的骨传导运动耳机有哪些?2024年五款高口碑骨传导耳机分享
  • 100种算法【Python版】第14篇——Pollard‘s Rho 质因数分解算法
  • 10.Linux按键驱动-中断的线程化处理threadirq
  • 【LeetCode热题100】链表
  • 虚拟化平台
  • 《深入浅出HTTPS​​》读书笔记(2):HTTP
  • 【日常知识点】Java 语法糖,你用过几个?
  • 【日常知识点】到底推不推荐用JWT?
  • 007:点云处理软件TrimbleRealWorks12.0安装教程
  • 影刀RPA实战:验证码识别功能指令
  • 【系统架构设计师】案例分析预测试卷一(3道材料题)
  • 实时时钟芯片DS1302在STM32系列使用详解
  • 2025考研各省市网上确认时间汇总!
  • Leetcode11:盛水最多的容器
  • 【C++刷题】力扣-#495-提莫攻击
  • STATCOM静止同步补偿器原理及MATLAB仿真模型
  • 多文档快速合并