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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6829|回复: 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端发送的数据与接收到的数据不一致,我的串口设置程序如下:
- I5 R& {6 _) u3 d; L  j5 \- Tvoid UART1INT( )" N9 O4 o) w0 s! @; v/ K
{
, H  V- ~* W+ q( G         // 使能 GPIO 模块) {! ^3 G( K: Y8 a
        // 对相应外设模块的使能也可以在 BootLoader 中完成
7 q  }+ h; }( o$ B0 s        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
0 y' ~' f: _  N  Y( i! Q* t! T    // 使能 UART1 模块1 G# c  W7 Y/ T
        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART1, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
" \6 A" |' @: I2 f& U        // 使能 UART1 禁用流控
' K" F; q# G! i# T/ ^& d        UARTPinMuxSetup(1, FALSE);  C4 b& j+ t+ Q5 J9 F
        // RS485 Enable 管脚; F! L. V# N, u1 u: y' ^3 R1 I
        RS485PinMuxSetup();. q# g, l" R4 Q# o' D
        ! b+ \/ b7 y. G$ X, d* |
        for(count=0;count<20000000;count++){};
0 A8 T, |6 r+ Q) T9 n* E& H/ N6 y        // 配置 UART1 参数' Q2 e% l( u" D# @  x0 O
        // 波特率 9600 数据位 8 停止位 1 无校验位,第四个参数的意思是 产生一个16*参考时钟用于内部发送和接收逻辑(网上看的) 6 Y0 s  w) z# e
    UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);, H% p+ u$ ~% m# y& l
        // 使能 UART1
2 ?+ }+ b0 h$ @  w        UARTEnable(SOC_UART_1_REGS);, N8 \( v( \; Q& I" o9 `' q

- D* O0 \* u! B* @9 y( L* y! a6 Z2 Q    // 设置使能管脚为输出状态 GPIO0[12]1 c2 P, O1 A6 a! R
        GPIODirModeSet(SOC_GPIO_0_REGS, 12, GPIO_DIR_OUTPUT);
$ k# L" }" k9 V9 W( e5 R/ E3 a3 T8 q0 ?* m2 \( |6 F' ^
        // 使能接收 / 发送 FIFO
. L: y$ @  F- l8 ?; C' }0 B        UARTFIFOEnable(SOC_UART_1_REGS);
4 h) H* T( \3 d
: i+ W* b9 G( a+ E1 t% ~        // 设置 FIFO 级别7 o$ L& L9 R( p$ O' A0 L
        UARTFIFOLevelSet(SOC_UART_1_REGS, UART_RX_TRIG_LEVEL_1);
' r. R7 ^! ^+ D
( O8 d: \3 R8 g        // UART 中断初始化
: A; r- v2 x# q4 t+ l                // 使能中断  o0 W: n& v' C
        unsigned int intFlags = 0;
& k0 W9 C' [: ]# o! i' J        intFlags |= (UART_INT_LINE_STAT  |  \
8 Y; D( K2 z9 V1 J$ p  Y! i6 F9 j                                 UART_INT_RXDATA_CTI);
! w3 i! ]4 p7 Z0 [  A  X        UARTIntEnable(SOC_UART_1_REGS, intFlags);
' g7 g+ v% Z+ w; q# I}( d- A( u+ d: e( y
, R% I0 X! F+ V$ _$ W( i4 l* \0 g( ~! [
,还有一点是当我注释掉UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16); 这句话的时候,在接收端使用115200波特率的串口助手接收信息,接收到的数据与发送的数据就一致,但是只要加了这话,无论串口的波特率我怎么设置,发送与接收到的数据都不同;我是使用创龙的OMAPL138用户资料中/demo/syslink/resource_sync这个程序改的.1 Y0 D$ H+ Q/ ~3 ]' w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 11:17 , Processed in 0.037862 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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