矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: Fireflying

【求助】51单片机C语言编程串口通讯疑惑

[复制链接]
     
发表于 2021-5-23 08:02:42 | 显示全部楼层
w6955 发表于 2021-5-22 21:27
南通老妖的例程里有详细的例子,都是要先把接口状态判断清楚再操作的,这个其实是基本操作,哪有先干了再 ...

这是第三方荔枝吧,我说的是厂家 Datasheet
回复 支持 反对

使用道具 举报

     
发表于 2021-5-23 08:55:14 | 显示全部楼层
washu 发表于 2021-5-23 08:02
这是第三方荔枝吧,我说的是厂家 Datasheet

不是第三方,就是他的公司的产品。老妖的datasheet 与库上面都有实例。
回复 支持 反对

使用道具 举报

     
发表于 2021-5-23 10:42:30 | 显示全部楼层
w6955 发表于 2021-5-23 08:55
不是第三方,就是他的公司的产品。老妖的datasheet 与库上面都有实例。

死太惨就这样起名字 不枉人家也给他起个死太惨的花名了
回复 支持 反对

使用道具 举报

     
发表于 2021-5-23 11:25:42 | 显示全部楼层
本帖最后由 w6955 于 2021-5-23 11:28 编辑
washu 发表于 2021-5-23 10:42
死太惨就这样起名字  不枉人家也给他起个死太惨的花名了


不止如此,我第一次看到 TCL 这个品牌是吓一跳,这不就是“太差了”的拼音吗?起名字没过脑子,懂事会也不懂事了吗,奇怪。很多事不能细想。STC的片子还不是不能用,就是那个说明书写的让人受不了。据说失眠的人很多,建议他们学习场论,非欧几何,读STC说明书。
回复 支持 反对

使用道具 举报

     
发表于 2021-5-23 20:57:16 | 显示全部楼层
楼主发送用了查询方式,应该在subf送入数据之后查询TI状态是否置1,就是while(!TI)这句就是等TI置1,应该在这句后面清掉TI。至于说前面发送数据错误是因为发生了覆盖,sbuf中前一个数还没发完,后面的数就又来了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-5-23 21:10:23 | 显示全部楼层
w6955 发表于 2021-5-23 11:25
不止如此,我第一次看到 TCL 这个品牌是吓一跳,这不就是“太差了”的拼音吗?起名字没过脑子,懂事会 ...

STC的数据手册确实让人蛋疼,上来先一顿广告轰炸,浓浓的山寨气息。不过英文版的数据手册看起来却清爽得多。
先不管那么多了,选STC纯粹是当初买的学习套件用的就是它,学习工具而已。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-5-23 21:22:16 | 显示全部楼层
本帖最后由 Fireflying 于 2021-5-23 21:51 编辑
w6955 发表于 2021-5-22 21:27
南通老妖的例程里有详细的例子,都是要先把接口状态判断清楚再操作的,这个其实是基本操作,哪有先干了再 ...


由于程序开始的时候,串口刚初始化完成,TI寄存器的默认值不是0么?还需要先查询TI是不是0,再发送?或者说串口初始化完成的时候,还没有进行发送操作,TI的值可能不是0?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-5-23 21:50:23 | 显示全部楼层
yangsen 发表于 2021-5-23 20:57
楼主发送用了查询方式,应该在subf送入数据之后查询TI状态是否置1,就是while(!TI)这句就是等TI置1,应该 ...

感谢指点!
如果我改用中断方式,是不是可以不用管操作速度的差异了?因为中断发生的时候,必然是操作已经完成了?
回复 支持 反对

使用道具 举报

     
发表于 2021-5-23 22:35:55 | 显示全部楼层
Fireflying 发表于 2021-5-23 21:50
感谢指点!
如果我改用中断方式,是不是可以不用管操作速度的差异了?因为中断发生的时候,必然是操作已 ...


我前面那个 AVR 的截图最下面那句话就是这个意思,如果死太惨的中断也是那么设计的话:
If the Data Register Empty interrupt is utilized, the interrupt routine writes the data into the buffer

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-5-24 00:14:41 | 显示全部楼层
washu 发表于 2021-5-23 22:35
我前面那个 AVR 的截图最下面那句话就是这个意思,如果死太惨的中断也是那么设计的话:
If the Data R ...

谢谢!知道了。
今天先实验CPU查询法处理串口数据,按照各位老师的指点,收和发十六进制数都已经成功。下一个阶段准备实验用串口中断进行收发十六进制数。
回复 支持 反对

使用道具 举报

     
发表于 2021-5-24 07:24:56 | 显示全部楼层
Fireflying 发表于 2021-5-23 21:10
STC的数据手册确实让人蛋疼,上来先一顿广告轰炸,浓浓的山寨气息。不过英文版的数据手册看起来却清爽得 ...

说实话,STC的U还是可以的,我也遇到问题,怎么都不工作,杀了U的心都有了,最后在他的PDF文件找到几行小字XXX版本xxx,下个版本解决之类的,顿时心中万头草泥马跑过。就这个他还广告,10万草泥马又跑过,谁受得了这个到处跑马的玩意,无怪乎瓦叔看不上眼了。不过用上了STC的还是不错的,我的经验就是尽量简单使用,简单就是美,像我这种蠢人,这个就更重要了,顺便说下STC15 STC8都是有库的,可以使用库。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2021-5-24 07:32:24 | 显示全部楼层
Fireflying 发表于 2021-5-23 21:22
由于程序开始的时候,串口刚初始化完成,TI寄存器的默认值不是0么?还需要先查询TI是不是0,再发送?或 ...

MCU速度快,其他的包括外设都慢,编程习惯就是要“按程序”来,一开始就另来一套?那是整自己。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-5-24 10:35:32 | 显示全部楼层
w6955 发表于 2021-5-24 07:24
说实话,STC的U还是可以的,我也遇到问题,怎么都不工作,杀了U的心都有了,最后在他的PDF文件找到几行小 ...

有几片STC15W204S,由于是SOP8封装的,现在就是先用12C4052AD操练,等练到有把握了再用STC15W204S,那个封装比较麻烦,4052AD是DIP20脚的,无论面包板还是洞洞板上都容易折腾。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 10:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表