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没有任何动作,不能发送,也不能接收
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>