使用的是正点原子的精英版,单片机是STM32F103ZET6,本例程实现使用轮询的方式,实现串口的发送和接收数据。本套开发板上面已经板载了usb转ttl的模块,所以直接插上即可使用:
USART 同步异步收发器定义:是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出出去,也可以自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器中。
了解原理之后我们复制上节课中断实验代码 ,复制上一章代码,打开图形化配置 ,按照图片进行配置,然后生成代码即可
在主函数中添加以下代码
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t revbuf[6];//定义接受变量6个字节
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
//当接受到6个字节之后执行电平翻转然后将接受的字节发送到串口上
HAL_UART_Receive(&huart1, revbuf, sizeof(revbuf), HAL_MAX_DELAY);//串口接收函数
LED0_TOGGLE();//LED0电平翻转
HAL_UART_Transmit(&huart1, revbuf, sizeof(revbuf), 1000);//串口发送函数
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
编译下载,打开串口软件按照以下步骤配置好之后,随便输入6个字节,当接受到6个字节之后执行电平翻转,然后将接受的字节发送到串口上。
即可实现使用轮询的方式,实现串口的发送和接收数据。