完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大神们帮忙看一下,我知道这样写只能延时一帧数据,但是用数组的也不能delay(table)呀,这个问题困扰很久了,大神帮我解决一下,谢谢
#include #define uchar unsigned char #define uint unsigned int uint a, fa; ***it led=P1^0; void delay(uint x) { uchar i; while(x--) for(i=0;i<125;i++); } void init()//初始化 { TMOD=0X20;//确定T1工作方式 TH1=0Xf3;//计算T1初值,装载TH1(2400波特率) TL1=0Xf3;//装载TL1 TR1=1;//定时计数器T1开始 REN=1;//允许串行接收位 SM0=0;//选择方式1 SM1=1; EA=1;//开总中断 ES=1;//开串口中断 } void main() { init(); while(1) { if(fa==1)//如果发为1,则执行下面的发送程序 { ES=0;//关串口中断,开始发送数据 led=0; delay(a); led=1; SBUF=a;//将接收到的数据a送到缓存器 while(!ti);//判断发送中断标志位置1了没,置1则下一步 TI=0;//发送中断标志位清0 ES=1;//开串口中断 fa=0;//将fa赋值为0便于下一次接收数据 } } } void ser() interrupt 4//接收中断函数(收到上位机数据后串口中断打开) { RI=0;//接收中断标志位清零 a=SBUF;//将接收的上位机发送的一帧数据用a表示 fa=1;//发 } |
|
相关推荐
4个回答
|
|
谢谢分享!
|
|
|
|
本人菜鸟一个,2400波特率的TH1=0xF4,
|
|
|
|
TH1=0xf4
|
|
|
|
自动设置1s发送一个指令,io翻转就好
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
499 浏览 1 评论
1943 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1053 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1469 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1909 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 19:23 , Processed in 0.621091 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号