返回信息流做了一个界面,想要点按钮发送串口命令,需要异步通信,但是fwrite里面写上异步后,因为gui里面都是函数,所以打开串口后异步无法关闭串口,写上stop异步后又无法发送消息,求大神指点。
发自「佳邮」
这是一条镜像帖。来源:北邮人论坛 / matlab / #11015同步于 2014/6/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
matlabGUI串口命令
kongsong
2014/6/15镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
初始化时将串口变成全局变量 这样在每个函数里面都可以调用了。 使用前要先fopen(串口名),然后fwrite,使用后如果要释放串口,要fclose(串口名) 然后clear 串口名,不知道是否回答了你的问题。
我用fwrite(com,data)这样打开关闭串口都是没有问题的,但是在fwrite里面加上async,想要异步通信,就无法再关闭串口了,如果fwrite里面不写模式是默认为同步传输么?串口调试助手可以接到同步信息,但是我的硬件是uart异步啊
发自「佳邮」
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);