当前位置:   article > 正文

用HAL库改写江科大的stm32入门例子_9-1 串口发送接收

用HAL库改写江科大的stm32入门例子_9-1 串口发送接收

 

设置串口:

 选项说明:

写一个串口发送函数:

  1. // serial send string function
  2. void serial_send_string(char *str)
  3. {
  4. HAL_UART_Transmit(&huart1, (uint8_t *)str, strlen(str), 1000);
  5. }

 main函数中调用发送信息:

  1. uint8_t data;
  2. data = 0x41;
  3. HAL_UART_Transmit(&huart1, &data, 1, 1000);
  4. uint8_t MyArray[] = {0x42, 0x43, 0x44, 0x45}; //瀹氫箟鏁扮粍
  5. HAL_UART_Transmit(&huart1, MyArray, sizeof(MyArray), 1000); //鍙戦?佹暟缁?
  6. // send string \r\nNum1=1234, Num2=5678
  7. char str[] = "\r\nNum1=1234, Num2";
  8. serial_send_string(str);
  9. char String[100]; //定义字符数组
  10. sprintf(String, "\r\nNum3=%d", 333);//使用sprintf,把格式化字符串打印到字符数组
  11. serial_send_string(String); //串口发送字符数组(字符串)

效果:

 如果用正点原子精英板:

所有步骤几乎和上面一样:就是芯片选择不太一样:

值得注意的是由于这个板子内置了usb转串口功能,插上线就可以了; 但可能发生无法识别端口的问题:

网上这类问题解决办法比较多,不在次赘述。

循环发送数据的代码如下:

ps:串口注意设置为可收发的模式。

  1. while (1)
  2. {
  3. // receive data from UART1
  4. HAL_UART_Receive(&huart1, reciveData, 2, 1000);
  5. // send data to UART1
  6. HAL_UART_Transmit(&huart1, reciveData, 2, 1000);
  7. // send data to UART1
  8. //delay 1s
  9. HAL_Delay(1000);
  10. /* USER CODE END WHILE */
  11. /* USER CODE BEGIN 3 */
  12. }
  13. /* USER CODE END 3 */
  14. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/655674
推荐阅读
相关标签
  

闽ICP备14008679号