tm4c123gh6pm串口
时间: 2023-12-27 22:03:50 浏览: 130
TM4C123GH6PM芯片内置了多个串口模块,其中最常用的是UART串口模块。下面是使用UART串口模块发送和接收数据的步骤:
1. 使能UART模块:首先需要将对应的UART模块使能,可以通过设置SYSCTL_RCGCUART寄存器来实现,比如使能UART0模块可以使用以下代码:
```
SYSCTL_RCGCUART_R |= SYSCTL_RCGCUART_R0;
```
2. 配置GPIO引脚:将GPIO引脚配置为UART模式,可以使用GPIO Port Control寄存器来实现,比如将PA0和PA1配置为UART0的RX和TX引脚可以使用以下代码:
```
GPIO_PORTA_AFSEL_R |= 0x03;
GPIO_PORTA_PCTL_R |= GPIO_PCTL_PA0_U0RX | GPIO_PCTL_PA1_U0TX;
GPIO_PORTA_DEN_R |= 0x03;
```
3. 配置UART参数:设置UART的波特率、数据位、停止位、奇偶校验等参数,可以使用UART Control寄存器来实现,比如设置UART0的波特率为115200可以使用以下代码:
```
UART0_CTL_R &= ~UART_CTL_UARTEN;
UART0_IBRD_R = 8;
UART0_FBRD_R = 44;
UART0_LCRH_R = UART_LCRH_WLEN_8 | UART_LCRH_FEN;
UART0_CTL_R |= UART_CTL_UARTEN;
```
4. 发送数据:将要发送的数据写入UART Data寄存器,可以使用以下代码将字符'Hello'发送出去:
```
while ((UART0_FR_R & UART_FR_TXFF) != 0); // 等待发送缓冲区为空
UART0_DR_R = 'H';
while ((UART0_FR_R & UART_FR_TXFF) != 0);
UART0_DR_R = 'e';
while ((UART0_FR_R & UART_FR_TXFF) != 0);
UART0_DR_R = 'l';
while ((UART0_FR_R & UART_FR_TXFF) != 0);
UART0_DR_R = 'l';
while ((UART0_FR_R & UART_FR_TXFF) != 0);
UART0_DR_R = 'o';
```
5. 接收数据:从UART Data寄存器中读取接收到的数据,可以使用以下代码将接收到的字符存储到变量ch中:
```
while ((UART0_FR_R & UART_FR_RXFE) != 0); // 等待接收缓冲区非空
char ch = UART0_DR_R;
```
以上是使用TM4C123GH6PM芯片内置的UART串口模块发送和接收数据的基本步骤,具体实现还需要根据具体的应用场景进行调整。
阅读全文