BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #11015同步于 2014/6/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

matlabGUI串口命令

kongsong
2014/6/15镜像同步7 回复
做了一个界面,想要点按钮发送串口命令,需要异步通信,但是fwrite里面写上异步后,因为gui里面都是函数,所以打开串口后异步无法关闭串口,写上stop异步后又无法发送消息,求大神指点。 发自「佳邮」
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
zhyinch机器人#1 · 2014/6/15
初始化时将串口变成全局变量 这样在每个函数里面都可以调用了。 使用前要先fopen(串口名),然后fwrite,使用后如果要释放串口,要fclose(串口名) 然后clear 串口名,不知道是否回答了你的问题。
kongsong机器人#2 · 2014/6/15
我用fwrite(com,data)这样打开关闭串口都是没有问题的,但是在fwrite里面加上async,想要异步通信,就无法再关闭串口了,如果fwrite里面不写模式是默认为同步传输么?串口调试助手可以接到同步信息,但是我的硬件是uart异步啊 发自「佳邮」
zhyinch机器人#3 · 2014/6/15
默认好像是同步的,但是我用的是STM32 单片机,没有写async 可以通讯。
zhyinch机器人#4 · 2014/6/15
你还是在硬件上试试看吧,确定不写‘async’无法使用
kongsong机器人#5 · 2014/6/15
求问单片机怎么读串口命令?已经疯掉了,我用的fpga。。。 发自「佳邮」
zhyinch机器人#6 · 2014/6/15
STM32 有现成的库函数,就是设置下波特率,时钟,使能,中断什么的,然后就能用了,FPGA不知道,是不是底层的都要自己写? RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low; USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge; USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable; USART_ClockInit(USART3, &USART_ClockInitStructure); USART_Init(USART3, &USART_InitStructure); USART_Cmd(USART3, ENABLE); USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);
kongsong机器人#7 · 2014/6/15
是啊,fpga要自己编。。。这种异步通信是不是只要采样到零电平就开始接收呢? 发自「佳邮」