当前位置: 首页 > news >正文

蓝桥杯嵌入式2——串口的使用

六、串口配置(usart_app.c)

6.1 CubeMX配置

调试器的串口模式与usart1相连

6.2 代码部分

6.2.1 需要补充的代码

#include "bsp_system.h"
typedef struct __FILE  FILE;//重定向函数使用uint8_t uart_rx_buffer[128];
uint8_t uart_rx_index;
uint32_t uart_rx_ticks;

需外部调用

重定向函数需牢记

int fputc(int ch,FILE *str)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 10);//使用串口1,发送1字节,最大等待时间10msreturn ch;
}

在串口初始化的函数里打开串口接收中断

HAL_UART_Receive_IT(&huart1,uart_rx_buffer,1);//串口1接收1字节数据到rx_buffer中
6.2.2 底层代码

串口的接收回调函数属于弱定义

#include "uart_app.h"void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if (huart->Instance == USART1){uart_rx_ticks = uwTick;uart_rx_index++;HAL_UART_Receive_IT(&huart1, &uart_rx_buffer[uart_rx_index], 1);}
}
void uart_proc(void)
{if(uart_rx_index == 0) return;// 如果从最后一次接收到数据到现在已经超过100msif(uwTick - uart_rx_ticks > 100) // 100ms内没有收到新的数据{printf("uart data:%s\n",uart_rx_buffer);// 清空接收缓冲区, 将接收索引置零memset(uart_rx_buffer, 0, uart_rx_index);//指向要清空数据的指针 0代表所有字节被设为0  要清空的字节数uart_rx_index = 0;// 将UART接收缓冲区指针重置为接收缓冲区的起始位置huart1.pRxBuffPtr = uart_rx_buffer;//将串口1接收缓冲的句柄指向buffer}
}

6.3 串口使用DMA


typedef struct __FILE FILE;
uint8_t uart_rx_dma_buffer[128];//添加在初始化中HAL_UARTEx_ReceiveToIdle_DMA(&huart1,uart_rx_dma_buffer,sizeof(uart_rx_dma_buffer));__HAL_DMA_DISABLE_IT(&hdma_usart1_rx,DMA_IT_HT);//关闭  半传输中断(HT):当DMA传输了一半数据时触发。int fputc(int ch,FILE *str)
{HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,10);return ch;
}

由于串口的DMA配置的为正常模式,所以要在DMA完成一次传送后重新初始化

//业务逻辑写在此处即可
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{//串口接收事件处理    printf("uart dma:%s",uart_rx_dma_buffer);                  memset(uart_rx_dma_buffer,0,sizeof(uart_rx_dma_buffer));
}

http://www.dtcms.com/a/424819.html

相关文章:

  • 对象创建流程
  • 如何提高网站流量和转化
  • 如何删除网站黑链望野王绩拼音
  • 做国外有那些网站著名设计公司排名
  • 企业网站管理系统模版源码一对一直播交友app开发
  • 【完整源码+数据集+部署教程】棉花产量预测分割系统: yolov8-seg-bifpn
  • 淘宝客网站域名怎么制作wap网站
  • 网站常用后台路径影视广告公司宣传片
  • 常见问题 网站建设什么是网络设计编辑
  • 网站原创内容佛山正规网站建设哪家好
  • 深圳市官网网站建设哪家好重庆安全员证书查询系统
  • 网站建设栏目添加电子商务网站设计与...
  • vps可以做多少网站乐陵森林酒店家具
  • 江门市住房和城乡建设局门户网站发帖那个网站好 做装修的
  • 【完整源码+数据集+部署教程】飞机尾迹分割系统: yolov8-seg-rtdetr
  • 搜关键词可以搜到的网站怎么做专业建站公司加盟
  • 网站建设考评表广州门户网站制作
  • mac虚拟机安装linux教程
  • 金华企业网站推广jq网站特效插件
  • 建设厅五大员证书查询网站宁波外贸网站制作公司
  • 北京做电子系统网站的公司软件开发需要多少资金
  • 织梦网站后台地址秀米编辑器官网
  • 集团网站建设多少钱网站发布与推广
  • wap网站前台广告设计公司改建项目
  • C++4d
  • Reranker模型从Reddit帖子爬取发现潜在客户需求
  • 购物网站 页面设计北京软件编程培训机构
  • Highcharts 树状图(Treemap)
  • LTspice —— 验证戴维南与诺顿定理
  • 网站服务器如何更改解析微信公众号网站导航怎么做