党国特派员
发表于 2015-4-23 07:33:26
给你这个建议,我们可以灵活变通,HAL_UART显然是接收固定字节,那我们可以在发送的时候对数据进行对齐啊。
魏科
发表于 2015-4-23 09:25:36
党国特派员 发表于 2015-4-23 07:29
很明显楼主是在不带操作系统的情况使用串口。
不好意思,我比较笨,没有明显看出来楼主是否带操作系统,其实带不带操作系统又有什么区别呢!
popo_0214
发表于 2015-5-7 11:15:31
魏科 发表于 2015-4-23 09:25
不好意思,我比较笨,没有明显看出来楼主是否带操作系统,其实带不带操作系统又有什么区别呢! ...
osSemaphoreCreate()函数没找到 不带操作系统是不是没用这个函数啊?
劳动节才开始认识stm32
为什么是EEFOCUS小白
发表于 2015-5-7 11:32:20
HAL库和3.5库有什么区别呢
BG4RFF
发表于 2015-5-16 15:20:29
其实4楼的办法是很好用的,我也在串口助手上实现了,但是回显不能在接收中断中用中断方式发送,直接用阻塞方式发送了也行的
stary666
发表于 2015-5-16 15:36:21
基本不用库,最多也是参考
moyanming2013
发表于 2015-5-16 17:38:02
damiaa 发表于 2015-1-6 16:00
一般不知道个数的都是接收到一个产生中断,然后在中断中放进你的缓存。在主程序中你想怎么整就怎么整。这就 ...
串口一般都有FIFO缓冲,打开这个缓冲,然后减少中断次数,一次可以接受8个或者16个字节,而不是1个字节,效率提升至少8倍或16倍。
接受完数据后再根据自己的实际情况进行数据分析处理。
moyanming2013
发表于 2015-5-16 17:39:23
魏科 发表于 2015-4-22 10:19
大家好,这是我在这个社区第一次发言,我开始也遇到这个问题,后来在百度和google都没有查到好的解决办法, ...
你这个是不错,为什么非得添加一个:
/*让串口信号量耗尽*/
while(osOK != osSemaphoreWait(uc1sem_id,0));
直接设置这个信号量可用就行了。
szgaos
发表于 2015-6-23 11:42:03
发送,接收都有个timeout,设置个timeout,在超时时就没什么问题,这个在freertos中就比较实用,可能HAL主要针对带实时系统的程序吧,:):):)
jiaswang
发表于 2015-6-23 12:06:19
的确如此