完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在使用CH547开发项目,需要用到UART0 作为与上位机的通讯端口,但是怎样设置都不能正常工作,以下是代码,请各位不吝赐教
/******************************************************************************* * Function Name : mInitSTDIO() * Description : CH559????0??????,????????T1×÷UART0???¨????·??ú?÷,??????????T2 ×÷???¨????·??ú?÷ * Input : None * Output : None+ * Return : None *******************************************************************************/ void mInitSTDIO( ) //这是官方的代码 { UINT32 x; UINT8 x2; SM0 = 0; SM1 = 1; SM2 = 0; RCLK = 0; TCLK = 0; PCON |= SMOD; x = 10 * FREQ_SYS / UART0BUAD / 16; x2 = x % 10; x /= 10; if ( x2 >= 5 ) x ++; TMOD = TMOD & ~ bT1_GATE & ~ bT1_CT & ~ MASK_T1_MOD | bT1_M1; //0X20??Timer1×÷??8??×????????¨?±?÷ T2MOD = T2MOD | bTMR_CLK | bT1_CLK; TH1 = 0-x; TR1 = 1; TI = 1; // 自己增加的 RI = 1; REN = 1; ES = 1; //ENABLE UART0 INT } 我的想法是用UART0的中断来接收发送数据 void UART0Interrupt( void ) interrupt INT_NO_UART0 using 1 //UART0 中断入口 { if(SCON&0x02) //发射中断 { TI=1; if(++TranPointer >= TRANSMIT_DATA_BUFFER) TranPointer = 0; if(TranPointer != BakTranPointer) { SBUF = TranData[++TranPointer]; } //CH549UART1SendByte(dat); }else if(SCON&0X01) 接收中断 { RI=1; ReceiveData[++ReceivePointer]=SBUF; if(ReceivePointer >= RECEIVE_DATA_BUFFER) ReceivePointer = 0; } } 其中 TranData[],ReceiveData[] 分别是发送 BUFFER 和接收BUFERR 现在的问题 只要 设 ES=1; 我原本的程序都运行不正常了,请各位不吝指教 急 |
|
相关推荐
5个回答
|
|
串口中断标志TI 和 RI写0清除中断。你的代码中初始化和进入中断都将这两个写了1
|
|
|
|
你好,进行了测试,但是发现,上电后UART0 功能依旧不正常,检测 TX(P3.1),RX(P3.0)均是低电平,初始化是否要单独设置 TX,RX 管脚,我也进行了设置,但是测量仍为低电平
GPIO_Init( PORT3,PIN0,MODE3); // RX GPIO_Init( PORT3,PIN1,MODE1); // TX P0 = 0; P1 = 0; P2 = 0; P3 = 0x02; |
|
|
|
是不是UART0 除了 作为下载使用,不能被用来作其他用?
|
|
|
|
EVT包中大部分例程制作好的HEX文件会用到串口打印,可以尝试烧录那些HEX文件看一下串口0能不能发送数据出来,排除一下硬件的问题。
其次在使用串口0的时候要避免使用标准库提供的printf函数,可能会导致程序卡在打印函数内部。可以通过在代码适当的地方对IO进行翻转,来监控程序是否正常运行。 |
|
|
|
您好,感谢答复,用UART0的串行口打印是没有问题的,因为客户临时要求加上位机通讯,而其他的UART口线已经被使用,所以改PCB 最简单的办法就使用 UART0跟上位机通讯,但是试过多次,都没能达到。。。所以请问贵司有UART0的通讯 source code ? 另外 客户要单线半双工通讯,不知现在的UART 能否实现?
|
|
|
|
只有小组成员才能发言,加入小组>>
516 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2396 浏览 1 评论
860浏览 2评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
402浏览 1评论
678浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
412浏览 1评论
511浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 16:37 , Processed in 0.957856 second(s), Total 56, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号