[STM32F1] 用STM32CubeIDE进行串行通信

[复制链接]
986|16
 楼主| Hitomi22 发表于 2025-7-6 08:26 | 显示全部楼层 |阅读模式
我想将数据从STM32发送到PC。
在其他MCU中,我经常使用Serial.write()
STM 32中是否有类似的函数可以直接用?

LOVEEVER 发表于 2025-7-29 23:43 | 显示全部楼层
HAL库就是可以直接使用的
tabmone 发表于 2025-8-4 11:01 | 显示全部楼层
可以通过 HAL 库或 LL 库实现类似功能。
primojones 发表于 2025-8-4 12:55 | 显示全部楼层
若发送字符串,需添加结束符(如\r\n),方便PC端识别数据包。
phoenixwhite 发表于 2025-8-4 13:48 | 显示全部楼层
直接向串口发送数据,函数会阻塞直到数据全部发送完成
tabmone 发表于 2025-8-4 15:49 | 显示全部楼层
/ 发送单个字节(类似 Arduino 的 Serial.write(byte))
void MySerialWriteByte(uint8_t byte) {
    HAL_UART_Transmit(&huart1, &byte, 1, HAL_MAX_DELAY);
}

// 发送字符串(类似 Arduino 的 Serial.write(str))
void MySerialWriteString(const char* str) {
    while (*str) {
        HAL_UART_Transmit(&huart1, (uint8_t*)str++, 1, HAL_MAX_DELAY);
    }
}
deliahouse887 发表于 2025-8-4 18:26 | 显示全部楼层
无论是 HAL 库还是标准外设库,都提供了直接发送单个字节的函数
wengh2016 发表于 2025-8-5 12:23 | 显示全部楼层
使用HAL_UART_Transmit函数
jackcat 发表于 2025-8-5 13:26 | 显示全部楼层
使用DMA控制器直接搬运数据到串口发送寄存器
ingramward 发表于 2025-8-5 15:10 | 显示全部楼层
没有直接的 Serial.write() 函数,但可以使用类似的功能来实现数据的发送。
mikewalpole 发表于 2025-8-7 09:33 | 显示全部楼层
可以使用HAL库中的HAL_UART_Transmit函数来发送数据到PC,类似于其他MCU中的Serial.write()函数。
geraldbetty 发表于 2025-8-8 11:01 | 显示全部楼层
   HAL_UART_Transmit(&huart1, (uint8_t*)"Hello", 5, 100); // 发送5字节数据,超时100ms
lzbf 发表于 2025-8-8 12:20 | 显示全部楼层
HAL_UART_Transmit函数用于通过UART接口发送数据。
tabmone 发表于 2025-8-8 17:03 | 显示全部楼层
使用 HAL_UART_Transmit() 函数发送数据。
macpherson 发表于 2025-8-8 20:45 | 显示全部楼层
HAL_UART_Transmit()。
jonas222 发表于 2025-8-11 16:36 | 显示全部楼层
void Serial_Write(UART_HandleTypeDef *huart, uint8_t *data, uint16_t len) {
    HAL_UART_Transmit(huart, data, len, 100);
}
louliana 发表于 2025-8-11 23:24 | 显示全部楼层

void USART_SendChar(char c) {
    USART_SendData(USART1, c);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

60

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部