[应用相关] STM32CUBEIDE采用单线半双工无法发送数据问题

[复制链接]
537|14
 楼主| szt1993 发表于 2023-3-29 09:26 | 显示全部楼层 |阅读模式
①用CubeMX配置好Single Wire(Half-Duplex)模式,其他的默认

1.png

②用CubeMX配置好Clock

③生成代码后需要将HAL_UART_MspInit函数中的GPIO_Mode改为GPIO_MODE_AF_PP模式,需要将Pull改为GPIO_PULLUP,需要将Speed改为GPIO_SPEED_FREQ_HIGH。


  1. 1 /**USART1 GPIO Configuration

  2. 2 PA9     ------> USART1_TX

  3. 3 */

  4. 4 GPIO_InitStruct.Pin = GPIO_PIN_9;

  5. 5 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;

  6. 6 GPIO_InitStruct.Pull = GPIO_PULLUP;

  7. 7 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

  8. 8 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;

  9. 9 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


④发送的时候需要启动HAL_HalfDuplex_EnableTransmitter

⑤接收的时候需要启动HAL_HalfDuplex_EnableReceiver



  1. 1 static uint8_t data = 0x55;

  2. 2 while (1)

  3. 3 {

  4. 4     HAL_HalfDuplex_EnableTransmitter(&huart1);

  5. 5     HAL_UART_Transmit(&huart1, &data, 1, 0xffff);

  6. 6     HAL_HalfDuplex_EnableReceiver(&huart1);

  7. 7     HAL_Delay(1000);

  8. 8 }


songqian17 发表于 2023-3-30 19:29 | 显示全部楼层

你有什么打算呢?或者你想知道什么?
huwr 发表于 2023-3-30 19:30 | 显示全部楼层
这是个问题贴还是个经验贴?
Clyde011 发表于 2024-2-5 08:16 | 显示全部楼层

控制地与其他地要通过一些特定的点连接
公羊子丹 发表于 2024-2-5 09:09 | 显示全部楼层

事实上很多做项目的工程师本身自己也会在用
万图 发表于 2024-2-5 10:12 | 显示全部楼层
Uriah 发表于 2024-2-5 11:15 | 显示全部楼层

变换器效率就显得比较低
帛灿灿 发表于 2024-2-5 13:11 | 显示全部楼层

设计者的作用就是在理解电路工作过程的基础上,保证PCB设计合理。
Bblythe 发表于 2024-2-5 14:14 | 显示全部楼层

两个环路最有可能产生电磁干扰(EMI)
Pulitzer 发表于 2024-2-5 17:13 | 显示全部楼层

滤波电容接线端的放置很重要
Pulitzer 发表于 2024-2-5 17:13 | 显示全部楼层

滤波电容接线端的放置很重要
童雨竹 发表于 2024-2-5 19:09 | 显示全部楼层

但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

355

主题

3172

帖子

6

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