谢谢 求助:波特率设置的问题?

/* 为printf和getkey输入输出初始化串口 */ void mInitSTDIO( ) { SCON = 0xD0; PCON = 0x80; TMOD = 0x20; TH1 = 0xf3; /* 24MHz晶振, 9600bps */ TR1 = 1; TI = 1; }

main( ) { UINT8 i; CH375_PORT_INIT( ); /* LED_OUT_INIT( ); LED_OUT_ACT( ); /* 开机后LED亮一下以示工作 */ mDelay100mS( ); /* 延时100毫秒 */ LED_OUT_INACT( ); mInitSTDIO( ); /* 为了让计算机通过串口监控演示过程 */ /// 在默认9600波特率下与375通信; xWriteCH375Cmd(CMD_SET_BAUDRATE); //设置新的375波特率,设置为57600 xWriteCH375Data(0x03); //输入分频系数 xWriteCH375Data(0xCC); //输入分频常数

TH1 = 0xFF;//重新设置单片机的波特率, 单片机始终为24MHz. i = CH375LibInit( ); /* 初始化CH375程序库和CH375芯片,操作成功返回0 */ mStopIfError( i ); /* 其它电路初始化 */

使用单片机时钟为24M ,波特率为115200. 一直不能通讯.是不是误差大啊.??还是设置错误啊!

??


你在未改变波特率,也就是9600时能通信吗? 还有就是设置375波特率之后,要有1mS左右的延时。


在未改变波特率, 可以通讯

i = CH375FileClose( ); /* 关闭文件 */ xWriteCH375Cmd(CMD_SET_BAUDRATE); //设置新的375波特率,设置为57600 xWriteCH375Data(0x03); //输入分频系数 xWriteCH375Data(0xCC); //输入分频常数 mDelay100mS( ); TH1 = 0xFF;//重新设置单片机的波特率, 单片机始终为24MHz.

mStopIfError( i ); mCopyCodeStringToIRAM( mCmdParam.Create.mPathName, "/PDF.C" ); /* 文件名,该文件在根目录下,刚才已经提供给CH375FileOpen */ mDelay100mS( ); mDelay100mS( ); LED_OUT_INACT( ); i = CH375FileCreate( ); mStopIfError( i ); mCmdParam.Close.mUpdateLen = 1; /* 自动计算文件长度,以字节为单位写文件,建议让程序库关闭文件以便自动更新文件长度 */ mDelay100mS( ); mDelay100mS( );

i = CH375FileClose( ); /* 关闭文件 */ 程序在执行完LED_OUT_INACT( );以后就不在变化 ,LED_WR_INACT( );没有被执行!是什么原因啊???使用单片机时钟为24M ,波特率为115200. 一直不能通讯.是不是误差大啊.??还是设置错误啊!


那你这样做下,在你设置好375的串口波特率之后,在将单片机的波特率设置为115200之后,你读取下设置波特率的状态是什么,并且设置波特率要在1MS之内完成


只有登录才能回复,可以选择微信账号登录