你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32cube中的HAL库用UART时的问题  

[复制链接]
lzy888 提问时间:2014-9-11 14:02 /
阅读主题, 点击返回1楼
收藏 2 评论58 发布时间:2014-9-11 14:02
58个回答
党国特派员 回答时间: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
的确如此

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版