OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...

串口起始位下降沿代码请教

查看数: 10059 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-5 15:05

正文摘要:

      不理解串口通信中下降沿的判断方法,有知道的指导一下哈。       例程是这样的:                  &nbs ...

回复

songsiming27 发表于 2018-12-14 16:28:35
你这样换个顺序没区别  理解先阻塞和非阻塞赋值吧
业未央 发表于 2018-12-5 16:45:38
szczyb1314 发表于 2018-12-5 16:30
在时钟边沿的触发下,移位寄存器一位一位的移动

谢谢,我再琢磨琢磨
szczyb1314 发表于 2018-12-5 16:30:42
在时钟边沿的触发下,移位寄存器一位一位的移动
szczyb1314 发表于 2018-12-5 16:29:45
业未央 发表于 2018-12-5 16:27
谢谢老哥,刚开始学,语法不太熟

阻塞赋值,就像是一个移位寄存器一样的
业未央 发表于 2018-12-5 16:27:22
szczyb1314 发表于 2018-12-5 16:16
要理解阻塞赋值啊兄弟, assign start_flag = uart_rx_d1&(~uart_rxd_d0);是说前一拍是1后一拍是0的时候赋 ...

谢谢老哥,刚开始学,语法不太熟
业未央 发表于 2018-12-5 16:13:43
1210568312 发表于 2018-12-5 15:59
是的,而且是并行执行的,d0 = rxd指的是,将上一个时钟沿下rxd的值赋值给d0;
d1 = d0 指的是,将上一 ...

我理解了,else中的语句是串行的两个语句需要两个时钟周期来执行,d1保存的实际就是上一个时钟rxd的状态
1210568312 发表于 2018-12-5 15:59:51
业未央 发表于 2018-12-5 15:26
你好,else语句中rxd赋值给d0 d0赋值给d1这两个语句在每个时钟节拍中都会执行吧

是的,而且是并行执行的,d0 = rxd指的是,将上一个时钟沿下rxd的值赋值给d0;
d1 = d0 指的是,将上一个时钟沿下 d0的值赋值给d1(同时这也是上上个时钟下rxd的值);
业未央 发表于 2018-12-5 15:26:41
1210568312 发表于 2018-12-5 15:12
d1和d0的值并一样哦兄弟,d0是rxd延时一个时钟节拍得到的,d1是d0延时一个时钟节拍得到的。 所以d1是rxd延 ...

你好,else语句中rxd赋值给d0 d0赋值给d1这两个语句在每个时钟节拍中都会执行吧
1210568312 发表于 2018-12-5 15:12:56
d1和d0的值并一样哦兄弟,d0是rxd延时一个时钟节拍得到的,d1是d0延时一个时钟节拍得到的。 所以d1是rxd延时2个时钟节拍得到的,你最好结合仿真看一下波形,一目了然
szczyb1314 发表于 2018-12-5 15:05:06
要理解阻塞赋值啊兄弟, assign start_flag = uart_rx_d1&(~uart_rxd_d0);是说前一拍是1后一拍是0的时候赋值为1,不就是下降沿,重点是阻塞赋值理解下



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-7-27 13:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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