急需 CH559 串口能接收的程序
本帖最后由 mig29ee 于 2018-4-30 22:53 编辑那位有559能串口接收的程序?
事先预计设置各种寄存器会是坑,加上554烧写寿命短,所以先用559玩,果然陷入坑里不能自拔。。。。
首先按习惯把Timer0设置成1mS中断,但是时钟最慢只能是 Fsys/12 = 1M,这样就势必要按16位模式,在中断里重装,想精确就要查汇编指令周期。
只好设置成 8bit自动重装,可以精确地获得250uS中断, 然后UART0的波特率就从57600变成14400了,这个问题还不大。
可是,再整合PWM进来,就不工作了。。。单独加ADC进来,Key又失效了。。
于是想到查看寄存器的值,就想到移植ISD 调试,失败(PC发送0xA5, 没有反应,用LA发现Rx0脚持续为‘1’),
只能再倒退一步:测试 UART0 Demo,发现还是只能发送,不能接收!
看了程序,mInitSTDIO()并没有设置IO脚,于是,看Datasheet,加上以下代码(P3.1输出,P3.0上拉输入),仍然不行
PORT_CFG = 0xF5; //0bxxxx 0101
P3_DIR = 0x02; //0b0000 0010 --> P3.1 is Tx_out,P3.0 is Rx_In
P3_PU = 0x0F; //for Rx pull
哪位有CH559的串口(UART0) 接收正常的?麻烦上传 一个 .hex ,看看我的板子是否有问题。
折腾了一阵,不知道怎么把发重复的图片删掉一张。。。 串口0接收在例子DEBUG.C里面,以及发送。 什么单片机呀 huo_hu 发表于 2018-5-9 10:06
什么单片机呀
USB单片机CH559 沁恒USB单片机 发表于 2018-5-9 16:29
USB单片机CH559
哦,没用过 <div class='shownolgin' data-isdigest='no'>我们开始也准备用这个芯片,但是也因为软件工程师搞不定,换成HC9326加52</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <div class='shownolgin' data-isdigest='no'>找到问题了,居然是USB转UART模块的问题
但是这个问题又很奇葩:自发自收OK,可是发给其他模块接收却有时NG。
验证:另外找来两个USB转UART模块,原有问题的模块编号为COM4(CH340),559板子不能接收其所发送的数据。
另外两个分别为COM9(CH340),COM10(PL2303)。
1. 三个模块都自发自收,正常,同时说明杜邦线也正常。
2. COM4 跟 COM9 交叉收发,4能收到9发的,9不能收到4发的。
3. COM10 跟 COM9 交叉收发,正常
4. COM10 跟 COM4 交叉收发,正常。
5. COM10, COM9 跟 CH559 板子收发,正常。
谁能解释为什么COM4能收,发给别的却挑对象?(排除接线错误),尤其在对方Rx处用LA能看到数据已经过来。
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>mig29ee 发表于 2018-5-10 09:32
找到问题了,居然是USB转UART模块的问题
但是这个问题又很奇葩:自发自收OK,可是发给其他模块接收却有时N ...
CH340的问题可以直接电话咨询:025-52638360</div><script>showreplylogin();</script>
页:
[1]