写一个stm32串口打印的代码
时间: 2023-12-07 22:05:45 浏览: 73
好的,以下是一个简单的stm32串口打印代码示例:
```c
#include "stm32f4xx.h"
void USART2_Init(void) {
// enable USART2 clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
// initialize USART2 pins
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; // TX: PA2, RX: PA3
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// set USART2 alternate function
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);
// USART2 configure
USART_InitTypeDef USART_InitStruct;
USART_InitStruct.USART_BaudRate = 9600;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_Parity = USART_Parity_No;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStruct.USART_Mode = USART_Mode_Tx;
USART_Init(USART2, &USART_InitStruct);
// enable USART2
USART_Cmd(USART2, ENABLE);
}
int main(void) {
USART2_Init();
char message[] = "Hello, World!"; // message to send
while (1) {
for (int i = 0; i < strlen(message); i++) {
USART_SendData(USART2, message[i]); // send one character at a time
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); // wait for transmission to complete
}
USART_SendData(USART2, '\r'); // carriage return
USART_SendData(USART2, '\n'); // newline
Delay(1000); // delay for 1 second
}
return 0;
}
```
这个程序需要使用STM32的库函数,在使用之前需要先配置好相关的库文件和头文件。在以上示例中,程序首先初始化USART2,然后进入一个无限循环,在循环中不停地发送"Hello, World!"字符串,并在字符串结尾添加一个回车符和换行符,之后延时1秒钟再次发送。
阅读全文