0

关于投票
串口惊魂
UART串口就像我的宠物,亲亲热热十几年了,一直很温顺。今天突然向我龇牙,被它吓出一身冷汗。

其实事件的起因很简单,算是我多事,本来没什么的。焊好一片新板,uPSD3251的,11.0592的晶体,带两个串口,想调试一下。就写了一段单片机的程序,在串口接收中断里面把收到的东东立刻发回去。

用PC机串口调试软件定时发出一个测试字符“a”,然后接收,Rx和Tx指示LED同时闪亮,接收正确。当我随手把测试字符改为“abcdefg”时,就出现乱码了,好像大约一秒出现一次(巧合,跟自动发送的定时时间有关)。

于是怀疑是不是没有伺候好看门狗,经测试,那条狗很尽职,从来不乱叫。

然后怀疑晶体的质量,换了晶体,也换了相应的电容,愁容依旧。

最后,修改程序,把收到的东东放到接收缓冲区,满了的时候,就转移到发送缓冲区发送,本本份份的、按部就班的处理接收和发送,问题就解决了。

其实,在接收中断里面随手把收到的东东发回去,只是为了测试一下通路,实际应用中没有人会这样做。但是,仅仅是测试的时候多发了几个字符,没想到就能积累起误差,引起这么大的麻烦。看来,还是功夫不到家啊。

后记:
51单片机只有接收缓冲没有发送缓冲,在上一个字节没有发送完成就写入下一个字节当然会出问题,与误差积累没有关系。PIC系列接收发送都有缓冲,就不会出现这种问题。
系统分类: 单片机
用户分类: 单片机
标签: 串口
来源: 原创
发表评论 阅读全文(287) | 回复(1)

0

关于投票
Max+plus II小贴士
下载线的长度最大不过30cm

不用的全局信号和专用输入脚,如:Global Clk, Global Clear, Ded Input应该接地;其他I/O悬空即可。


如果想用Global Clock以外的引脚作时钟输入端,须将Assign->Global Project Logic Synthesis->Automatic Global选项去掉。


Max+Plus II的安装

1、安装好Baseline10_1.exe
2、运行Max+Plus.11.v10.1.exe;解压缩到Maxplus的安装目录下;运行Maxplus2Crack.exe,开放Max+PlusII的所有功能。
3、如果是在WindowsXP2000下,要安装Byteblaster(MV)的驱动程序:在Control PanelAdd Hardware,Add Hardware Wizard中,选择Add a New Hardware Device, 然后在设备类型中选择Sound,Video and Game Controllers, 驱动程序是"Maxplus2\drivers\win2000\win2000.inf"


使用EPF10K10时的设置


1、打开Compiler窗口。在Processing->Fitter Settings...菜单下,去掉Use Quartus Fitter for FLEX 10K and ACEX1K Devices选项。
2、打开Programmer窗口:
EPF10K10TC144-4编程设置:
a) Assign->Device...中,去掉Show Only Fastest Speed Grades选项;
选择EPF10K10TC144-4器件;
打开Device Options...,去掉Device Option Group中部分选项,如:User-supplied Start-up Clock Use Configuration Device     Pull-up Resistor
Configuration Device选择EPCLC20
Configuration Scheme选择Passive Serial
b) 去掉菜单选项JTAG->Multi-Device JTAG Chain
c) 单击Programmer中的Configure即可(此时源文件为:目标.SOF)。
d) 也可在FLEX->Multi-Device Flex Chain Setup...中加入目标.SOF”,然后,选中FLEX->Multi-Device Flex Chain选项。
EPC2编程设置(首先要设置好EPF10K10TC1440-4):
a) 选菜单JTAG->Multi-Device JTAG Chain
b) 进入菜单JTAG->Multi-Device JTAG Chain Setup...Device NameEPC2 Select Programming File...目标.POF”文件;单击“Add”加入Chain
c) Programmer窗口点击Program即可。
3EPF10K10TC144也支持JTAG编程,但硬件连线不同。于FLEX方式(即ByteBlasterMV)。
4MAX+PLUSII10.1在不选Multi-Device JTAG ChainMulti-Device FLEX Chain时,默认Config当前工程的SOF文件,以FLEX方式编程。
5、编辑好文件之后,要将File->Project->Name...设置为当前编辑的文件,然后才能开始compile。否则Compile"Start"键为无效状态。


2#101# 为二进制数;
16#AA# 16进制数;
数字之间可以任意加下划线(underscore,只为方便读数。如:1_7_0 等价于170

系统分类: CPLD/FPGA
用户分类: FPGA/CPLD
标签: Max+plus II
来源: 原创
发表评论 阅读全文(215) | 回复(0)
总共 , 当前 /