OMAPL138中在DSP端程序设置串口1,数据收发不一致; - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7065|回复: 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端发送的数据与接收到的数据不一致,我的串口设置程序如下:
: L" M7 T6 V" h! Rvoid UART1INT( )
3 a# }6 C2 B9 T{9 h% H9 s6 H) c& ^3 ^
        // 使能 GPIO 模块! R, b& l) g- f: }/ W
        // 对相应外设模块的使能也可以在 BootLoader 中完成
. L. e1 q: y4 x) ]! s        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
5 l" q+ r  s( O  J    // 使能 UART1 模块
- J7 a; V6 P1 |0 F3 W) E# \        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART1, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);, G* D0 m5 C+ m* x. k  c
        // 使能 UART1 禁用流控
$ S) O4 R% n" u" v- H        UARTPinMuxSetup(1, FALSE);' t, c! F. {! U  ]% K6 ^
        // RS485 Enable 管脚) m  f9 W+ Z% `! d$ E7 Y  o
        RS485PinMuxSetup();' }+ {8 I6 e" h' `+ K$ F! d/ e
        ) d$ E2 s( r# V" u; A" m1 ]' v
        for(count=0;count<20000000;count++){};  ^. A# g; i. A5 |- D9 x& E5 P
        // 配置 UART1 参数
4 ]% w; [, X. D8 b' P/ V        // 波特率 9600 数据位 8 停止位 1 无校验位,第四个参数的意思是 产生一个16*参考时钟用于内部发送和接收逻辑(网上看的) , f- E. ]) q: \5 E3 Z( Z4 ~" F. J
    UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);) x5 ~( P3 _: |/ u# |* x  b" _, ~
        // 使能 UART1
8 n$ o$ I& f6 @8 R2 W        UARTEnable(SOC_UART_1_REGS);
, o5 d# ]" J  p; E2 w) w/ Y$ J  m
! N) i# A' h/ f/ y# _    // 设置使能管脚为输出状态 GPIO0[12]; N6 y( t5 ~0 A9 a  b
        GPIODirModeSet(SOC_GPIO_0_REGS, 12, GPIO_DIR_OUTPUT);$ F  f5 \0 m1 D% Q

" _# H3 ?6 s- Q1 }; n/ O+ j        // 使能接收 / 发送 FIFO
( p6 t$ Q( y4 ~$ r) Q        UARTFIFOEnable(SOC_UART_1_REGS);
/ B, Z+ t% R9 n2 \6 M" L
% d2 p$ x9 {- f+ s* O. D, O        // 设置 FIFO 级别1 N' }! i$ b  A! |3 {& i3 _( {
        UARTFIFOLevelSet(SOC_UART_1_REGS, UART_RX_TRIG_LEVEL_1);3 L5 @$ k$ T+ a3 d& F% S/ i
; ?; Y6 I  C: _
        // UART 中断初始化
" m* p* N/ t# ]& G0 w% A. _                // 使能中断
* Y7 U9 r& e3 Y- B% d( y6 w' c) d        unsigned int intFlags = 0;5 I' J7 C2 d# \, I6 X' v  _
        intFlags |= (UART_INT_LINE_STAT  |  \8 I/ ]; e5 m# F7 z  T
                                 UART_INT_RXDATA_CTI);
) j3 o3 b0 r0 {* Y) K        UARTIntEnable(SOC_UART_1_REGS, intFlags);1 `7 I7 f) n7 j2 E3 m7 r* ~
}8 i4 Z1 H- \0 ]9 ?/ @
! \& k( S$ J( x$ F# Q
,还有一点是当我注释掉UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16); 这句话的时候,在接收端使用115200波特率的串口助手接收信息,接收到的数据与发送的数据就一致,但是只要加了这话,无论串口的波特率我怎么设置,发送与接收到的数据都不同;我是使用创龙的OMAPL138用户资料中/demo/syslink/resource_sync这个程序改的.2 `, u* c: ]2 p' r1 V, u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-17 02:35 , Processed in 0.045538 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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