| 
 | 
 
我的问题是这样的,我这里需要使用OMAPL138连接485设备,想用OMAPL138的DSP端与485设备通信,在DSP端上的程序设置串口1后,发现DSP端发送的数据与接收到的数据不一致,我的串口设置程序如下:8 M+ n. e5 g+ r& G6 ] 
void UART1INT( )2 _* `" p5 p/ @ 
{ 
2 a) a4 l  a9 C' t" Z' X* H3 h( W, _9 L         // 使能 GPIO 模块 
4 b& W( `9 m9 }6 \$ K        // 对相应外设模块的使能也可以在 BootLoader 中完成  E: w+ b; ?% y+ W 
        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);3 k9 F+ O, t- N' R! B 
    // 使能 UART1 模块- L; p- L# N- O" r! P 
        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART1, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);9 T) v" I4 j5 T 
        // 使能 UART1 禁用流控 
& \& V: G# I% S4 ?8 N- [+ Q        UARTPinMuxSetup(1, FALSE);+ y# i8 Z9 M" `$ v 
        // RS485 Enable 管脚1 X" b. v9 e' y4 d0 B* o 
        RS485PinMuxSetup();4 A' \0 f& P" O* _ 
         
# ]; \( w! R" b2 o' ]0 @        for(count=0;count<20000000;count++){};7 w( S1 b) z) }3 J 
        // 配置 UART1 参数0 ]% y! R6 g$ v; e2 x6 x 
        // 波特率 9600 数据位 8 停止位 1 无校验位,第四个参数的意思是 产生一个16*参考时钟用于内部发送和接收逻辑(网上看的) 5 [6 i" N( j1 x2 }# q 
    UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16); 
6 l# Z9 Y' @8 y* s) q        // 使能 UART1 
9 Z4 H$ R) N! M8 E  ^  P        UARTEnable(SOC_UART_1_REGS);, y4 I) i% P8 k) d) W& E; D 
+ W, Z" _- @4 N( b0 j* J& ? 
    // 设置使能管脚为输出状态 GPIO0[12]3 R: v1 r) O0 t: n3 E 
        GPIODirModeSet(SOC_GPIO_0_REGS, 12, GPIO_DIR_OUTPUT);! h9 o# `% u1 n# t/ {  F. f 
0 `9 T( S8 o2 x5 G, u7 Y+ ?6 l 
        // 使能接收 / 发送 FIFO7 ?. \" ?7 I9 M1 A5 ] 
        UARTFIFOEnable(SOC_UART_1_REGS); 
& Z1 k) Y. R- M& A8 j* o) y1 j  t4 _( [ 
        // 设置 FIFO 级别 
; g" p8 W9 Q+ X# {1 U" h# z        UARTFIFOLevelSet(SOC_UART_1_REGS, UART_RX_TRIG_LEVEL_1);: ?& L" t+ y9 V( v. o5 Y! n 
( h* C6 Q& d: L4 O 
        // UART 中断初始化' `8 \2 v& ~- O/ d 
                // 使能中断 
) A, n; Q2 }9 r0 ?, b+ D6 `4 }        unsigned int intFlags = 0; 
) n5 X  R- Y6 P8 F        intFlags |= (UART_INT_LINE_STAT  |  \ 
! W5 X! Q" Q2 J% _- \* B: t                                 UART_INT_RXDATA_CTI);! E1 Q/ y) R) v* Y3 E3 g- l 
        UARTIntEnable(SOC_UART_1_REGS, intFlags);8 m* B7 ^% M' f' u+ Q0 @& a% r3 L 
}0 ^- p9 J5 R/ a3 C 
 
8 K4 I: B1 ?+ o5 E6 U" U6 E1 [$ C& t2 I,还有一点是当我注释掉UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16); 这句话的时候,在接收端使用115200波特率的串口助手接收信息,接收到的数据与发送的数据就一致,但是只要加了这话,无论串口的波特率我怎么设置,发送与接收到的数据都不同;我是使用创龙的OMAPL138用户资料中/demo/syslink/resource_sync这个程序改的.6 _- n; |  V9 i0 f0 U6 u1 H 
 |   
 
 
 
 |