完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在下写了一个DHT11温湿度传感器的程序,现在检测和LCD显示已经成功,可是串口发送总是失败串口助手也没法显示。之前自学的串口通信部分也只有半桶水没能完全掌握,这几天几夜想破头都不知到底哪里出了错,现在附上这部分串口的C代码,希望各位看官高手大神能够帮个忙,在这里谢谢各位了!!
#include #include #include #define uchar unsigned char #define uint unsigned int uchar flag,flag_on,flag_time,t0,a; /************************串口初始化****************/ void chuankou_init() { SCON=0X50; TMOD=0X21; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=0xfd; TL1=0xfd; ET0=1; TR1=1; SM1=1; SM0=0; REN=1; EA=1; ES=1; } /******************串口通信**********************/ void chuankou() { if(flag==1) { flag=0; ES=0; TI=1; switch(flag_on) { case 0: puts("Start!n"); TR0=1;break; case 1: puts("End!n"); TR0=0;break; case 2: puts("Error!n"); break; } while(!TI); TI=0; ES=1; } if(flag_time==1) { flag_time=0; ES=0; TI=1; printf("Hum:%d.%dn",H_temp/100,H_temp%100); if(((H_temp/100)>h_h)||((H_temp/100) printf("Hem waring!!!n"); } printf("Tem:%d.%dn",T_temp/100,T_temp%100); if(((T_temp/100)>h_h)||((T_temp/100) printf("Tem waring!!!n"); } while(!TI); TI=0; ES=1; } } /************主函数****************************/ void main(void) { chuankou_init(); while(1) { chuankou(); } } /***********串口中断***************/ void ser() interrupt 4 { RI=0; a=SBUF; flag=1; if(a==1) flag_on=0; else if(a==2) flag_on=1; else flag_on=2; } |
|
相关推荐
3个回答
|
|
|
|
|
|
你看看串行通信的中断部分
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
522 浏览 0 评论
656 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
978 浏览 0 评论
1042 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
735 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12048 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 16:22 , Processed in 0.764001 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号