党国特派员 发表于 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

的确如此
页: 1 [2] 3 4 5 6
查看完整版本: stm32cube中的HAL库用UART时的问题