一、任务
stm32f103通过串口二向485总线轮询发送问答帧访问所有modbus温湿度传感器模块,并且把得到的应答帧进行解析,得到对应的温湿度的值,再通过串口一发送至PC端。
二、创建代码
1.通过CubeMX配置stm32
配置RCC

配置时钟

配置串口二波特率4800

配置串口二DMA

配置串口一

配置中断

生成项目工程

三、编写代码
1.重定向输出串口一
#include <stdio.h>
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);
//等待发送结束
while(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_TC)!=SET){
}
return ch;
}
2.添加中断处理
stm32f1xx_it.c的串口2中断处理函数
void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
uint32_t tmp


1万+

被折叠的 条评论
为什么被折叠?



