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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4129|回复: 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端发送的数据与接收到的数据不一致,我的串口设置程序如下:
0 @$ ~8 U# d7 Avoid UART1INT( ): k' a7 M/ O( p
{
& v) L4 I" T* o/ g9 o, r         // 使能 GPIO 模块
* q" {9 u/ D  B/ E2 [        // 对相应外设模块的使能也可以在 BootLoader 中完成
$ q9 y9 S) r9 D: X        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);: L% [6 ?' D* W5 }2 b" Z, {
    // 使能 UART1 模块. E) s: a1 S; g* M2 ~& e
        PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART1, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
& |0 p( B4 H. I4 ?        // 使能 UART1 禁用流控7 n% X% ]0 k5 t- `5 T* a; p
        UARTPinMuxSetup(1, FALSE);, W2 q8 ~6 L4 Q  Z7 M
        // RS485 Enable 管脚. ^0 O8 y# E7 Q8 x& r+ a
        RS485PinMuxSetup();9 d6 f+ g. F. r& q' x5 `& X; e
       
  N5 w1 _& {' E' h. I1 v7 [$ @( G        for(count=0;count<20000000;count++){};- R% Z" u; v* j/ }9 ]
        // 配置 UART1 参数
& U* ~+ R; F/ O1 W        // 波特率 9600 数据位 8 停止位 1 无校验位,第四个参数的意思是 产生一个16*参考时钟用于内部发送和接收逻辑(网上看的)
# V! \# K2 W& `    UARTConfigSetExpClk(SOC_UART_1_REGS, UART_1_FREQ, BAUD_9600, UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);  u/ _) j4 N. W) Q: \4 q
        // 使能 UART1& B1 U- G1 g! s6 l
        UARTEnable(SOC_UART_1_REGS);! C: v& ]/ p" ]8 c: z

: ~0 T( p1 ]: `    // 设置使能管脚为输出状态 GPIO0[12]
% s" @, _( J* n        GPIODirModeSet(SOC_GPIO_0_REGS, 12, GPIO_DIR_OUTPUT);5 Y5 g  r# ~  ?5 j3 ^* F
- ^0 P- h: S9 R! ]: U, Q, P
        // 使能接收 / 发送 FIFO; z$ ~1 o& m0 G. x
        UARTFIFOEnable(SOC_UART_1_REGS);
! e; W  c2 [" c& ~/ H
- @- f- d4 {0 j$ H9 t0 H5 v; y        // 设置 FIFO 级别
0 W) U- t# z; s) ^3 w        UARTFIFOLevelSet(SOC_UART_1_REGS, UART_RX_TRIG_LEVEL_1);8 w6 P5 E% P- Z9 j( X$ I5 K

; U% T7 c0 B1 K- ?/ ]" X        // UART 中断初始化
) [( ^4 s$ _' s) {! i- p                // 使能中断6 D# ^& E' @! L
        unsigned int intFlags = 0;  j2 a& B1 ]" B2 }% z  V
        intFlags |= (UART_INT_LINE_STAT  |  \
& [2 c- C" J3 t$ Q$ D+ D                                 UART_INT_RXDATA_CTI);
  j) b4 Y1 r/ O0 O* b1 H1 p8 P        UARTIntEnable(SOC_UART_1_REGS, intFlags);. _# x; ]( c: [! f, S. [
}
8 R% j8 O" o, }, [
8 `+ u7 G, p5 a! f0 c1 J,还有一点是当我注释掉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 j. V$ l0 X/ O1 W: d" m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 13:51 , Processed in 0.041548 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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