比如说,我用LPC2104,但是我总共需要4个串口,那么只能模拟串口出来了;当然高人会说,你笨啊,不知道选个串口多的片子啊!我只能先说,高人,资源是有限的,需求是无限的,选个片子解决了,难保下次遇到要8个串口呢?扩串? 我只是想用这个来做个探讨,呵呵 硬件编写和调试我觉得都很简单,只要串口时序对,TXD和RXD都可以OK 如果是在LPC2104上不用操作系统,裸奔的话,问题也不大 但是如果用UCOS,应该怎么做呢?而且要和ZLG串口中间件的方法比较类似 我初步的想法是,发送共用UARTWRITE(),里面直接就操作I/O了;接收采用通用的C51的办法,用一个外部中断EXINT0做起始位的检测,TIMER1做采样(TIMER0是系统时钟);底层按网上有的C51的模拟串口编写; 麻烦的事情来了,接收完了,怎么通知UCOS呢? 我想采用软中断,把0x08通道分配给这个模拟的串口,但是中断程序估计只能用ASM编了,明说,不知道怎么下手 如果不用软中断,那么只能一直在UCOS的TASK里等待信号量的方式,但是这样一来,和我设想的模拟串口要和真正的串口一样操作就不能实现了,也就是说,模拟串口的接收,在系统的层面,也是采用中断接收的方式进行的。。。 如果上面两个都是错误的,有其他办法么? 期待中。。。。。。。。。。 |