MCU与FPGA串口通信
FPGA以9600的波特率向单片机发送32位数据,然后单片机对数据进行解析,显示在显示屏上面
波特率的产生 : 9600bps是指每秒钟发送9600个bit,即1bit的时间为1/9600,fpga板子自带50M晶振,那么一bit的时间时1/9600/1/50M
FPGA以9600的波特率向单片机发送32位数据,然后单片机对数据进行解析,显示在显示屏上面
波特率的产生 : 9600bps是指每秒钟发送9600个bit,即1bit的时间为1/9600,fpga板子自带50M晶振,那么一bit的时间时1/9600/1/50M
|
|
51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。 当串行发送完毕后,将在标志位 TI 置 1,同样,当收到了数据后,也会在 RI 置 1。 无论 RI 或 TI 出现了 1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。 在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。 看到过一些书籍和文章,在串口收、发数据的处理方法上,很多人都有不妥之处。 接收数据时,基本上都是使用“中断方式”,这是正确合理的。 即:每当收到一个新数据,就在中断函数中,把 RI 清零,并用一个变量,通知主函数,收到了新数据。 发送数据时,很多的程序都是使用的“查询方式”,就是执行 while(TI ==0); 这样的语句来等待发送完毕。 这时,处理不好的话,就可能带来问题。 看了一些网友编写的程序,发现有如下几条容易出错:
PHP array_intersect_key() 函数
array_intersect_key() 函数用于比较两个(或更多个)数组的键名 ,并返回交集。
该函数比较两个(或更多个)数组的键名,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名。
先给出foreach的两种语法格式
1,foreach (array_expression as $value) statement 2,foreach (array_expression as $key => $value) statement 第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
PDO多种方式取得查询结果
PDO最大的特点之一是它的灵活性,本节将介绍如何取得查询结果,包括:
数组(数值或关联数组);
字符串(单列的结果集);
对象;
回调函数。
Sublime Text 3的phpfmt插件安装及格式化参数使用说明
在 Sublime Text 中 ctrl+shift+P
选择 Package Control: Install Package
搜索 phpfmt
打开 Preferences–>Package Settings–>phpfmt->Settings User ,以下是我的phpfmt的配置,将下面的代码粘贴上去修改一下php_bin的路径即可。
|
|
|
|
|
|
|
|
水平通知消息(WM_HSCROLL)
74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
如果单片机的总线接口只作一种用途,不需要接锁存器;如果单片机的总线接口要作两种用途,就要用两个锁存器。例如:一个口要控制两个 LED,对第一个 LED 送数据时,“打开”第一个锁存器而“锁住”第二个锁存器,使第二个 LED 上的数据不变。对第二个 LED 送数据时,“打开”第二个锁存器而“锁住”第一个锁存器,使第一个 LED 上的数据不变。如果单片机的一个口要做三种用途,则可用三个锁存器,操作过程相似。然而在实际应用中,我们并不这样做,只用一个锁存器就可以了,并用一根 I/O 口线作为对锁存器的控制之用(接 74HC573 的L,而E可恒接地)。所以,就这一种用法而言,可以把锁存器视为单片机的 I/O 口的扩展器。
1脚是输出使能 11脚是锁存使能 D是输入 Q是输出 H是高电平,L是低
Python实现内容替换的脚本
|
|