北京网站大全,北京互联网公司排行榜,企业推广费用,市场调研是什么工作一、基本知识 TTL#xff08;Transistor-Transistor Logic#xff09;#xff1a; 电平范围#xff1a; 逻辑1对应于2.4V–5V#xff0c;逻辑0对应于0V–0.5V。通信特点#xff1a; 全双工。特点#xff1a; 常见于单片机和微控制器的IO电平#xff0c;USB转TTL模块通常…一、基本知识 TTLTransistor-Transistor Logic 电平范围 逻辑1对应于2.4V–5V逻辑0对应于0V–0.5V。通信特点 全双工。特点 常见于单片机和微控制器的IO电平USB转TTL模块通常是将USB转为TTL电平的串口模块。 RS485 电平范围 逻辑1对应于2V–6V逻辑0对应于-6V—2V。通信特点 半双工。特点 RS485采用差分信号传输通过AB两根线的电压差表示电平信号。由于差分信号的特性RS485具有较好的抗干扰性能可以允许多达128个收发器连接在同一总线上。 二、cubemx配置 时钟配置 引脚使能 PD5是LED小灯高电平有效PD4是485发送使能高电平有效PD4低电平默认接收
输出模式选择推挽输出 串口一配置默认即可 生成工程代码 三、代码
main.c中 添加串口回调函数
/* USER CODE BEGIN 0 */uint8_t a[10];//空闲中断回调函数参数Size为串口实际接收到数据字节数
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{if(huart-InstanceUSART1){ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_SET); //将485芯片设置为发送模式//把收到的一包数据通过串口回传HAL_UART_Transmit(huart1,a,Size,0xff);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_RESET); //将485芯片设置为接收模式//再次开启空闲中断接收不然只会接收一次数据HAL_UARTEx_ReceiveToIdle_IT(huart1,a,sizeof(a));}
}/* USER CODE END 0 */
主函数中添加第一次中断接收 /* USER CODE BEGIN 2 */HAL_UARTEx_ReceiveToIdle_IT(huart1,a,sizeof(a));//空闲中断接收/* USER CODE END 2 */
while中进行小灯状态翻转 /* USER CODE BEGIN WHILE */while (1){HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_5);HAL_Delay(100); /* USER CODE END WHILE */ 运行效果截图 链接: https://pan.baidu.com/s/1ulrCptVIZOq7dkZ3uFwzZA?pwdtw5v 提取码: tw5v