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

北京手机模板建站google play三件套

北京手机模板建站,google play三件套,推荐的网站制作,网站设计理论STM32USARTDMA实现不定长数据接收 CubeMX配置代码分享实践结果 这一期的内容是一篇代码分享#xff0c;CubeMX配置介绍#xff0c;关于基础的内容可以往期内容 夜深人静学32系列11——串口通信夜深人静学32系列18——DMAADC单/多通道采集STM32串口重定向/实现不定长数据接收 … STM32USARTDMA实现不定长数据接收 CubeMX配置代码分享实践结果 这一期的内容是一篇代码分享CubeMX配置介绍关于基础的内容可以往期内容 夜深人静学32系列11——串口通信夜深人静学32系列18——DMAADC单/多通道采集STM32串口重定向/实现不定长数据接收 CubeMX配置 其余部分配置这里不做介绍这里只展示串口DMA部分 代码分享 main函数 /* USER CODE BEGIN PTD */uint8_t Usart1_Send_Buffer[] 公主王子请点赞\r\n;uint8_t Recv_Buff[BUFFER_SIZE]; //接收数据缓存volatile uint8_t Recv_Length; //接收一帧数据的长度volatile uint8_t Recv_DndFlag; //一帧数据接收完成标志int main(void) {/* USER CODE BEGIN 1 *//* 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_DMA_Init();MX_USART1_UART_Init();__HAL_UART_ENABLE_IT(huart1, UART_IT_IDLE); //使能串口空闲中断HAL_UART_Receive_DMA(huart1,Recv_Buff,BUFFER_SIZE); //开启DMA串口接收最大接收长度为 BUFFER_SIZE/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){ //通过串口1使用DMA的方式发送数据 // HAL_UART_Transmit_DMA(huart1, (uint8_t *)Usart1_Send_Buffer, sizeof(Usart1_Send_Buffer)); // HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }/* USER CODE END PTD */ 在main函数定义的数据需要在mian.h里面声明外部变量 #define BUFFER_SIZE 256 extern uint8_t Recv_Buff[BUFFER_SIZE]; //接收数据缓存 extern volatile uint8_t Recv_Length; //接收一帧数据的长度 extern volatile uint8_t Recv_DndFlag; //一帧数据接收完成标志USART1_IRQHandler中断函数 void USART1_IRQHandler(void) {/* USER CODE BEGIN USART1_IRQn 0 *///注意要在USART1_IRQHandler函数内判断串口空闲中断idle的状态而不是到串口接收完成回调函数里面//由于接收长度的限制所以大概率是不会接收完成的 // uint32_t temp;if((__HAL_UART_GET_FLAG(huart1,UART_FLAG_IDLE) ! RESET))//idle标志被置位为1则说明接收完成串口处于空闲状态{ __HAL_UART_CLEAR_IDLEFLAG(huart1);//清除标志位HAL_UART_DMAStop(huart1); //接收完成关闭DMA串口接收 Recv_Length BUFFER_SIZE - __HAL_DMA_GET_COUNTER(hdma_usart1_rx); //总计数减去未传输的数据个数得到已经接收的数据个数//__HAL_DMA_GET_COUNTER(hdma_usart1_rx);用于获取本次DMA传输中为传输的数据个数。Recv_DndFlag 1; // 接受完成标志位置1 HAL_UART_Transmit_DMA(huart1, Recv_Buff, Recv_Length);Recv_Length 0;//清除计数Recv_DndFlag 0;//清除接收结束标志位 也可以在其他地方判断执行相应步骤后清除。memset(Recv_Buff,0,Recv_Length);HAL_UART_Receive_DMA(huart1, Recv_Buff, BUFFER_SIZE);//重新打开DMA接收不然只能接收一次数据}/* USER CODE END USART1_IRQn 0 */HAL_UART_IRQHandler(huart1);/* USER CODE BEGIN USART1_IRQn 1 *//* USER CODE END USART1_IRQn 1 */ }USART1_IRQHandler中断函数在stm32f4xx_it.c文件中代码实现原理具体如下 开启串口1的空闲中断开启DMA串口1的接收数据接收数据长度为BUFFER_SIZE需要确保BUFFER_SIZE 正常的数据长度在数据的接收过程中串口处于忙碌状态当接收完成时串口空闲发送中断。判断是空闲中断标志位置位读取未完成传输的数据计算接收的数据长度将计算数据长度的发送会串口检验数据正确性清空接收的数据再次开启DMA接收重复以上过程。 实践结果 发送数据 接收数据
http://wiki.neutronadmin.com/news/161622/

相关文章:

  • 网站搭建徐州百度网络手机上怎么做自己卖菜的网站
  • 国外做的比较的ppt网站有哪些方面dede网站地图
  • Wordpress怎么装到服务器Wordpress 收费优化
  • 服务企业建设网站重庆高校在线开放课程平台
  • 西安建设厅网站天元建设集团有限公司第二建筑工程分公司
  • 网站建设在什么税控盘音乐网站建设方案书模板
  • 做网站h5中信建设有限责任公司国内区事业部招聘
  • 纯静态网站是有什么程序做的万网买的网站备案
  • 网站主机教程做创意美食的视频网站
  • 广州做服装电商拿货的网站网站建设中搭建页面结构
  • 广西住房和建设厅网站天津建设工程信息网 招标发布软件
  • 网站建站基础郑州百姓网二手货车
  • 挖矿网站怎么做做染料的网站
  • 视频网站建设费用明细百度一下官网入口
  • 罗湖商城网站设计多少钱本科专业建设规划
  • 网站后台模板制作流程装饰工程施工流程步骤
  • 个人备案网站描述WordPress投稿自动发布
  • 做婚恋网站代理商挣钱吗网站开发交接清单
  • wap网站开发需要多少钱铜陵做网站的
  • 东莞贸易网站建设网站欢迎页面设计
  • 做网站还是订阅号wordpress 做大型网站
  • 站长素材官网免费广州seo优化排名推广
  • 百度快照和做网站有关系吗做兼职网站
  • 受欢迎的邢台做网站小程序定制开发公司前十名
  • 微信引流的十个方法北京做网站优化的公司
  • 如何提高网站的权重网站建设补充协议模板
  • 凡科建站电话猎聘网招聘网页版
  • 一个网站需要几个人做设计那些网站可以卖设计图
  • windows7 花生壳做网站服务器设计网站推荐理由
  • 沈阳网站建设技术公司排名沈阳企业定制网站建设