打印

不能发送,也不能接收

[复制链接]
401|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2018-10-20 13:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

UART0 按照TI的例程配置

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA);              /*  使能UART0所在的GPIOA端口    */
    SysCtlPeriEnable(SYSCTL_PERIPH_UART0);              /*  使能UART0模块               */

    GPIOPinTypeUART(GPIO_PORTA_BASE ,                   /*  配置PA0和PA1为UART功能      */
                    GPIO_PIN_0 | GPIO_PIN_1);

    UARTConfigSet(UART0_BASE ,
                  9600 ,                                /*  波特率:9600                */
                  UART_CONFIG_WLEN_8 |                  /*  数据位:8                   */
                  UART_CONFIG_STOP_ONE |                /*  停止位:1                   */
                  UART_CONFIG_PAR_NONE);                /*  校验位:无                  */

         UARTEnable(UART0_BASE);   

上面这个配置UART0就可以接收和发送啦,但是UART1如下配置

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);              /*  使能UART1所在的GPIOB端口    */
    SysCtlPeriEnable(SYSCTL_PERIPH_UART1);              /*  使能UART1模块               */

     // 下面这两个是增加的,因为PA0,PA1默认为UART0,所以不用加这两个,但是我在DEBUG调试时跟到这个函数里面时,读HWREG(ulBase + GPIO_O_PCTL) 这个值时,都是0,好像写进去的值对这个寄存器没有任何作用,我再去查找LM3S3739 DATASHEET时,发现在DATASHEET时面根本就不存在这个寄存器的地址,也没有相关的介绍,感觉很郁闷,请高手指教,谢谢

GPIOPinConfigure(GPIO_PB0_U1RX);      

GPIOPinConfigure(GPIO_PB1_U1TX);

  GPIOPinTypeUART(GPIO_PORTB_BASE ,                   /*  配置PB0和PB1为UART功能      */
                    GPIO_PIN_0 | GPIO_PIN_1);

    UARTConfigSet(UART1_BASE ,
                  9600 ,                                /*  波特率:9600                */
                  UART_CONFIG_WLEN_8 |                  /*  数据位:8                   */
                  UART_CONFIG_STOP_ONE |                /*  停止位:1                   */
                  UART_CONFIG_PAR_NONE);                /*  校验位:无                  */

         UARTEnable(UART1_BASE);   

上面配置,UART1没有任何动作,不能发送,也不能接收

相关帖子

沙发
jiajs| | 2018-10-20 13:21 | 只看该作者

按UART1的配置方法配置了UART2

使用特权

评论回复
板凳
yszong|  楼主 | 2018-10-20 13:24 | 只看该作者

也是同样没有成功

使用特权

评论回复
地板
dengdc| | 2018-10-20 13:28 | 只看该作者
没看明白楼主的程序,到底哪几句是一起的一段?

使用特权

评论回复
5
yszong|  楼主 | 2018-10-20 13:32 | 只看该作者
从“上面这个配置UART0就可以接收和发送啦,但是UART1如下配置”到最后是UART1的配置,这前面是UART0的配置啊

使用特权

评论回复
6
wuhany| | 2018-10-20 13:35 | 只看该作者
貌似楼主用的库函数版本比较老

使用特权

评论回复
7
jiahy| | 2018-10-20 13:38 | 只看该作者
uart1 的时钟使能了?

使用特权

评论回复
8
jlyuan| | 2018-10-20 13:40 | 只看该作者
看一下这个引脚是不是复用引脚的

使用特权

评论回复
9
yszong|  楼主 | 2018-10-20 13:43 | 只看该作者

  SysCtlPeriEnable(SYSCTL_PERIPH_UART1);              /*  使能UART1模块               */

这个是UART1时钟使能,
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);              这个是POURTB口时钟使能,
PB0,PB1是复用为UART1的,但是GPIOPinTypeUART(GPIO_PORTB_BASE ,     GPIO_PIN_0 | GPIO_PIN_1);这一句就是用来说明使PB0,PB1用为UART1的使能,下面两句
GPIOPinConfigure(GPIO_PB0_U1RX);      
GPIOPinConfigure(GPIO_PB1_U1TX);是用来设置GPIO_O_PCTL的,但是我发现设置了这两句后,我把GPIO_O_PCTL内容读出来内容还是0,和没设置之前的值是一样,我再查LM3S3739 的DATASHEET时,DATASHEET里面没有GPIO_O_PCTL这个介绍,也不知道是怎么回事

使用特权

评论回复
10
spark周| | 2018-10-20 13:47 | 只看该作者
不知道楼主的这个GPIO_O_PCTL寄存器是怎么知道的,我是没听说过

使用特权

评论回复
11
liliang9554| | 2018-10-20 13:50 | 只看该作者

建议楼主采用最新的库函数和资料。

使用特权

评论回复
12
午夜粪车| | 2018-10-20 13:53 | 只看该作者
GPIOPinConfigure()函数是用来修改GPIOPCTL寄存器的

使用特权

评论回复
13
yszong|  楼主 | 2018-10-20 13:55 | 只看该作者
楼主能不能共享一下LM3S最新的库函数和资料呢?

使用特权

评论回复
14
yszong|  楼主 | 2018-10-20 16:02 | 只看该作者
有没有熟悉这个IC的朋友呢?给点点子吧?

使用特权

评论回复
15
zhenykun| | 2018-10-20 16:04 | 只看该作者

配置的和芯片资源对应吗

使用特权

评论回复
16
jiajs| | 2018-10-20 16:08 | 只看该作者
这个还是在相关的寄存器配置上下功夫解决的

使用特权

评论回复
17
jiajs| | 2018-10-20 16:11 | 只看该作者
这样的话就检查下硬件上的设计看是否有缺陷的。

使用特权

评论回复
18
yszong|  楼主 | 2018-10-20 16:13 | 只看该作者

哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝