8719|12

802

帖子

24

TA的资源

五彩晶圆(中级)

楼主
 

lm3s8962使用之UART篇 [复制链接]

int
main(void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_8MHZ);
    
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
    UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
                        (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                         UART_CONFIG_PAR_NONE));
 
    UARTEnable(UART0_BASE);
    UARTCharPut(UART0_BASE, 'W');
    UARTCharPut(UART0_BASE, 'e');
    UARTCharPut(UART0_BASE, 'l');
    UARTCharPut(UART0_BASE, 'c');
    UARTCharPut(UART0_BASE, 'o');
    UARTCharPut(UART0_BASE, 'm');
    UARTCharPut(UART0_BASE, 'e');
    UARTCharPut(UART0_BASE, '\r');
    UARTCharPut(UART0_BASE, '\n');
   
    while(1)
    {
    }
}


使用LM3S8962的串口0时,程序运行过程如程序所示。
//设置器件时钟
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                         SYSCTL_XTAL_8MHZ);
//使能一个外设(GPIO A)
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
//使能一个外设(UART 0)
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
//配置GPIO A0和A1作为UART引脚
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//配置UART波特率115200,8-N-1
UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
                                    (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                                     UART_CONFIG_PAR_NONE));
//使能UART 0发送和接收
UARTEnable(UART0_BASE);
//通过串口输出"Welcome\r\n"

经测试发现,以上程序配置过程缺一不可,也就是说这是配置串口通信的最基本过程,我在配置串口过程中因为拉下GPIOPinTypeUART头大了很久,呵呵。
还有一个可疑之处请大是解惑,使能(GPIO A)和使能(UART 0),这两条必须在配置过程中都调用,否则串口配置不成功,疑问:我使用的UART 0,而UART 0与GPIO A是同一个外部引脚,为什么程序不可以只使能UART 0,而不调用使能GPIO A???
3Q

[ 本帖最后由 HOHO 于 2010-8-16 09:52 编辑 ]

最新回复

楼主有没有试过发送数字123看能不能正确接收啊。  详情 回复 发表于 2010-9-2 11:37
 
点赞 关注
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086

回复
举报

4996

帖子

19

TA的资源

裸片初长成(初级)

沙发
 
不错啊,跟在后边学习。。。
 
个人签名我的博客
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
谢谢分享
 
 
 

回复

1412

帖子

15

TA的资源

版主

4
 

原帖由 HOHO 于 2010-8-16 09:47 发表 intmain(void){    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |                &nbs ...

 

 

 

可以看8962 DS 的第181页,上面有个图,图中说明了IO口是使用GPIO方式还是复用方式取决于一个MUX,但这个MUX如何工作又取决于GPIOAFSEL寄存器的配置,而这个GPIOAFSEL寄存器又属于GPIO模块的一部分,如果该GPIO模块不使能的话,那么自然无法配置GPIOAFSEL寄存器了,同样,MUX也不会工作。

 

 

 

个人意见,欢迎讨论。

赞赏

1

查看全部赞赏

 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

802

帖子

24

TA的资源

五彩晶圆(中级)

5
 

回复 4楼 youki12345 的帖子

精彩的回复 DS看的太少了 马上去认真学习DS

顺便再问一哈,  如果是楼上所述的结构,那先使能IO口和先使能UART效果是否相同,

我在例程中见到过先使能UART再使能IO的顺序

[ 本帖最后由 HOHO 于 2010-8-16 11:32 编辑 ]
 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

回复

1412

帖子

15

TA的资源

版主

6
 

原帖由 HOHO 于 2010-8-16 11:27 发表 精彩的回复 DS看的太少了 马上去认真学习DS 顺便再问一哈,  如果是楼上所述的结构,那先使能IO口和先使能UART效果是否相同,我在例程中见到过先使能UART再使能IO的顺序

 

手头没有板子,没法试啊!

 

不过我觉得没有关系,它们所设置的寄存器都不一样。

 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

802

帖子

24

TA的资源

五彩晶圆(中级)

7
 
我手头有板子也试过了,两个使能先后开启,都可以正确完成UART的配置

DS我也看了一下,现在理解认为:两个使能好比“串联”开关,只要都开启就OK
先后顺序无所谓,

感谢
 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

回复

1412

帖子

15

TA的资源

版主

8
 
原帖由 HOHO 于 2010-8-16 14:31 发表 我手头有板子也试过了,两个使能先后开启,都可以正确完成UART的配置 DS我也看了一下,现在理解认为:两个使能好比“串联”开关,只要都开启就OK 先后顺序无所谓, 感谢
            
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

602

帖子

0

TA的资源

一粒金砂(中级)

9
 
恩,好好的看看DS!呵呵
 
个人签名白天图生存,晚上谋发展!!!
 
 

回复

826

帖子

0

TA的资源

一粒金砂(中级)

10
 

我的板子还没到

郁闷死了!等的我好辛苦啊,我也来看看!
 
 
 

回复

802

帖子

24

TA的资源

五彩晶圆(中级)

11
 

回复 10楼 lilong8470 的帖子

你是48元申购的吗,
派睿电子 有没有给你发确认用的邮件??
只有收到邮件,并且收到你的开票信息,他们才会发板子的
 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

回复

58

帖子

0

TA的资源

一粒金砂(中级)

12
 

楼主有没有试过发送数字123看能不能正确接收啊。

 
 
 

回复

802

帖子

24

TA的资源

五彩晶圆(中级)

13
 

回复 12楼 zhouning201 的帖子

这个程序只是为了简单说明UART的配置过程,并没有加入接收及回显的过程:$
除了我给的程序,楼上还可以参考一下,例程中的 usat_echo
 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表