FENFAXIANGSHANG

    1. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      长得帅怪我落 发表于 2017-4-10 09:28 前面那个,你的中断里面写法不对,    while(!RI); for(i=0;i
      一开始我问的那个实现了,但是现在出现了一个bug,如果我把主函数中改成(j=1;j
    2. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      长得帅怪我落 发表于 2017-4-10 09:28 前面那个,你的中断里面写法不对,    while(!RI); for(i=0;i
      成功了  谢谢了
    3. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      长得帅怪我落 发表于 2017-4-10 09:28 前面那个,你的中断里面写法不对,    while(!RI); for(i=0;i
      哈哈  行 我试试 谢了
    4. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      长得帅怪我落 发表于 2017-4-10 08:46 你先别想着只显示25,你先看把for哪里,j=0开始输出,看你能不能原封不动的输出k+25来。然后在根据想象判断 ...
      不能显示所有的字符,先是显示k,然后再一次发送数据时显示+; 当我把代码改成如下时,他竟然会全部显示,但是和我的目的不一样, 主函数中SBUF=table[2]和SBUF=table[3]这两个语句无论保留哪个,它竟然都会显示,如果把这两个语句都删了,就不会显示任何数据了。不明白为什么即使把 主函数中SBUF=table[2]和SBUF=table[3]这两个语句的条件限制的这么狠了,它竟然都会显示。 帮忙分析一下,谢谢了 #include #define uchar unsigned char #define uint  unsigned int unsigned char flag,a,i,j; uchar table[]; void init() {    TMOD=0x20;    TH1=0xFD;    TL1=0xFD;    TR1=1;    REN=1;    SM0=0;    SM1=1;    EA=1;    ES=1;       } void main() {    init();    while(1)    {           if(flag==1)        {                            ES=0;               SBUF=table[2];                           SBUF=table[3];                            while(!TI);                             TI=0;                           flag=0;                       ES=1;                           }                                                              } } void ser()interrupt 4 {      RI=0;    table[0]=SBUF;    table[1]=SBUF;              table[2]=SBUF;    table[3]=SBUF;    flag=1;        }复制代码
    5. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      迈尔风随 发表于 2017-4-9 23:32 你这代码应该先把那些注释掉的删除掉再发上来,看着头都晕了,还有中断函数里的这一句table=SBUF;,编译的 ...
      不小心把table【i】中i给删了{:1_101:}
    6. 单片机串口通信接收与发送字符串问题 12/12587 51单片机 2017-04-10
      nmg 发表于 2017-4-10 07:46 楼主,发帖的内容如果含有代码,请嵌入代码的功能,如下图所示。这样大家看起来更清晰,问题得到解决的机率 ...
      恩恩 好的 谢谢提醒
    7. 徐建庆 发表于 2017-4-7 12:42 十六进制就是hex发送,因为发的是字符,当然要用文本发送。你也可用hex发送,不过要对应ASCII码表。
      恩恩 行 好的 谢了
    8. 徐建庆 发表于 2017-4-5 15:27 首先“K+22”是一个字符串对吧。 第一点:这个字符串是由四个字符组成的对吧,那你接受的时候一定要定义一 ...
      为什么不能是16进制呢?串口助手里边有16进制这个功能,难道也不可以用16进制吗
    9. ienglgge 发表于 2017-4-5 19:18 问题现在解决了吗,串口通信,最好有开始和结束标志,便于判断,减少错误可能。
      恩恩,正在调试
    10. 徐建庆 发表于 2017-4-5 15:27 首先“K+22”是一个字符串对吧。 第一点:这个字符串是由四个字符组成的对吧,那你接受的时候一定要定义一 ...
      恩恩 好的 谢了
    11. strong161 发表于 2017-4-5 13:26 好吧!前面没有太看懂, 就是提取串口字符串中的数字并通过数码管显示吧!
      恩恩 对
    12. strong161 发表于 2017-4-5 13:29 不好意思,前面来搅局了……
      哦哦
    13. strong161 发表于 2017-4-5 13:26 好吧!前面没有太看懂, 就是提取串口字符串中的数字并通过数码管显示吧!
      但是那个数字在串口发送时还是可以随便改的,你发送多少,数码管上就会显示多少
    14. strong161 发表于 2017-4-5 13:26 好吧!前面没有太看懂, 就是提取串口字符串中的数字并通过数码管显示吧!
      恩恩 对的 就是这个意思
    15. strong161 发表于 2017-4-5 13:16 你单片机接只接到 数?没有收到字符串,还是接收到了,但是只能显示数字?另外你的数码管 是什么数 ...
      数码管是共阴极的
    16. strong161 发表于 2017-4-5 13:16 你单片机接只接到 数?没有收到字符串,还是接收到了,但是只能显示数字?另外你的数码管 是什么数 ...
      “K+22”这个字符串,我通过for语句已经控制了只显示22这个数字,不让他显示字符K和+。 这道题的目的是“程序中写K+22这个字符串,但是只接收22”’ ,
    17. strong161 发表于 2017-4-4 20:57 不知所云,问题要写清楚,软件,硬件,否则谁少有人能猜出你说的几个意思。你是要显示 K+22 这个数,还是K+ ...
      是发送“K+22”这个字符串,但是只接收22这个数,另外22这个数在串口助手发送数据时是可以随便改的,你发送23,数码管显示23,你发送44,数码管上显示44,也就是说通过串口可以控制数码管上显示的具体内容。 “K+22”中的22只是一个随便的例子,程序中还是要写“k+22”这个字符串的,但是只接收22这个数。
    18. machinnneee 发表于 2017-4-4 22:21 将K+去掉,显示22
      恩恩  对 但是当我用字符串做的时候,数码管上并不显示正确的实验现象
    19. ketose 发表于 2017-4-5 10:35 专门帮小学生写作业。不过要收费哦。
      哈哈
    20. 石玉 发表于 2017-4-4 01:18 又是毕业设计吧
      不是,我们的作业

最近访客

< 1/1 >

统计信息

已有4人来访过

  • 芯积分:--
  • 好友:1
  • 主题:6
  • 回复:22

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言