OMAPL138中在DSP端程序设置串口1,数据收发不一致; - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6611|回复: 0
打印 上一主题 下一主题

[未解决] OMAPL138中在DSP端程序设置串口1,数据收发不一致;

[复制链接]
回帖奖励 2 金钱 回复本帖可获得 2 金钱奖励! 每人限 1 次

1

主题

1

帖子

1028

积分

金牌会员

Rank: 6Rank: 6

积分
1028
跳转到指定楼层
楼主
发表于 2019-11-27 17:36:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的问题是这样的,我这里需要使用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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-11-4 23:43 , Processed in 0.040966 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表