设置串口:
选项说明:
写一个串口发送函数:
// serial send string function
void serial_send_string(char *str)
{
HAL_UART_Transmit(&huart1, (uint8_t *)str, strlen(str), 1000);
}
main函数中调用发送信息:
uint8_t data;
data = 0x41;
HAL_UART_Transmit(&huart1, &data, 1, 1000);
uint8_t MyArray[] = {0x42, 0x43, 0x44, 0x45}; //瀹氫箟鏁扮粍
HAL_UART_Transmit(&huart1, MyArray, sizeof(MyArray), 1000); //鍙戦?佹暟缁?
// send string \r\nNum1=1234, Num2=5678
char str[] = "\r\nNum1=1234, Num2";
serial_send_string(str);
char String[100]; //定义字符数组
sprintf(String, "\r\nNum3=%d", 333);//使用sprintf,把格式化字符串打印到字符数组
serial_send_string(String); //串口发送字符数组(字符串)
效果:
如果用正点原子精英板:
:
所有步骤几乎和上面一样:就是芯片选择不太一样:
值得注意的是由于这个板子内置了usb转串口功能,插上线就可以了; 但可能发生无法识别端口的问题:
网上这类问题解决办法比较多,不在次赘述。
循环发送数据的代码如下:
ps:串口注意设置为可收发的模式。
while (1)
{
// receive data from UART1
HAL_UART_Receive(&huart1, reciveData, 2, 1000);
// send data to UART1
HAL_UART_Transmit(&huart1, reciveData, 2, 1000);
// send data to UART1
//delay 1s
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}