MM32F0010A1T串口打印
时间: 2023-09-01 20:13:08 浏览: 110
以下是MM32F0010A1T串口打印的示例代码,可以参考:
```c
#include "MM32F0010.h"
#define UART1_TX_PIN GPIO_Pin_9
#define UART1_RX_PIN GPIO_Pin_10
#define UART1_GPIO GPIOA
#define UART1 USART1
void UART1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
/* Enable GPIO clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
/* Enable USART clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
/* Configure USART1 Tx (PA.9) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = UART1_TX_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(UART1_GPIO, &GPIO_InitStructure);
/* Configure USART1 Rx (PA.10) as input floating */
GPIO_InitStructure.GPIO_Pin = UART1_RX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(UART1_GPIO, &GPIO_InitStructure);
/* USART1 configuration */
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
/* Configure USART1 */
USART_Init(UART1, &USART_InitStructure);
/* Enable USART1 */
USART_Cmd(UART1, ENABLE);
}
void UART1_SendByte(uint8_t byte)
{
/* Wait until transmit data register is empty */
while (USART_GetFlagStatus(UART1, USART_FLAG_TXE) == RESET);
/* Send byte */
USART_SendData(UART1, byte);
/* Wait until transmit is complete */
while (USART_GetFlagStatus(UART1, USART_FLAG_TC) == RESET);
}
void UART1_SendString(const char *string)
{
while (*string)
{
UART1_SendByte(*string++);
}
}
int main(void)
{
/* Initialize UART1 */
UART1_Init();
/* Send "Hello World!" string */
UART1_SendString("Hello World!\r\n");
while (1)
{
/* Do nothing */
}
}
```
上述代码中,需要注意以下几点:
1. USART1的引脚需要配置为GPIO的Alternate Function模式,以便与USART1通信。
2. 在初始化时,需要设置USART的Baud Rate、数据位、停止位、校验位等参数。
3. 在发送数据时,需要检查发送数据寄存器是否为空,然后再发送数据。同时,需要等待传输完成后再进行下一次发送。
4. 在主函数中,可以调用UART1_SendString函数发送字符串。发送完成后,程序会进入一个死循环。
阅读全文