今日闲来无事,再次操起好久之前的一块板子,板载stc15芯片,要做个串口通讯。看完数据手册直接写程序,写完烧写进去后测验串口不通。
百思不得其姐啊,小编写了不下十次的串口程序,今日怎样就不通了呢?
好吧,老老实实的再看一遍数据手册(话说小编写程序都是看着数据手册写的),看完后更是抑郁了,哪哪都没问题啊,可是便是不通。
好吧,再回来从头仔细看程序,从声明到函数界说,从初始化到中止函数,都没问题,最终看主函数吧。
由于小编用P3.3口驱动一个三极管,所以偷闲写了:
P3M1=0x00;
P3M0=0xff;
整个程序就仅仅比平常的多了这两句。是它的原因引起了串口通讯不正常的吗?抱着试试的情绪,把以上程序改为:
P3M1=0x00;
P3M0=0x00;
在测验,完美解决问题,串口通讯正常,收发都正常↓↓。
所以问题就出在这里。
这样下结论是不是太早了,小编还算谨慎,接着往下测验,
就之前的问题,我既然是设置为输出形式,那按道理是要能发送数据才对吧,好吧,小编改代码,下载测验↓↓
果不其然,还真的能发送数据。
到此,测验完毕,能够斗胆的说了,小编今日遇到的问题便是由于过错的设置了IO口的作业形式引起的。
科普:
STC单片机从12系列后就支撑IO的作业形式的设置了,有兼容传统51的双向IO,强上拉推挽输出,输入,开漏四种形式,咱们在使用是请必定按实际使用要求设置,详细设置方法请看下图↓↓
最最终,今日的问题,信任许多小伙伴都遇到过,在此就算给自己或许我们提个醒,你也遇到过相同的问题请点赞,假如你还没遇到望后续学习中不要在呈现这样的问题,你在单片机学习的道路上遇到过哪些头疼的问题,文后留言和我们沟通,小编前来学习。