实例介绍
网上使用HAL串口时很多都没有实现不定长数据的接收,要么是限定数据长度,要么是加“0x0a 0x0d”来控制接收完成,找了很久都没有真正找到一个能用的,在很多通信中不可能是定义的,或是加上“0x0a 0x0d”来实现的,由于项目需要,自己阅读STM32 HAL的文档,写出了一个Demo程序,可以实现回显功能(就是通过给STM32发送不定长的数据,可以实现一模一样接收发送的数据),在STM32F429IGT6上验证过,跑了一天没有出现丢失数据的问题,使用DMA发送与接收方式,可以释放CPU部分运算资源,程序中的UART_RX_BUF_SIZE定义为128,就是一次最大接收为128,我在项目中通过
【实例截图】
【核心代码】
usart-2019-6-8
└── usart
├── Drivers
│ ├── CMSIS
│ │ ├── Device
│ │ │ └── ST
│ │ │ └── STM32F4xx
│ │ │ ├── Include
│ │ │ │ ├── stm32f401xc.h
│ │ │ │ ├── stm32f401xe.h
│ │ │ │ ├── stm32f405xx.h
│ │ │ │ ├── stm32f407xx.h
│ │ │ │ ├── stm32f410cx.h
│ │ │ │ ├── stm32f410rx.h
│ │ │ │ ├── stm32f410tx.h
│ │ │ │ ├── stm32f411xe.h
│ │ │ │ ├── stm32f415xx.h
│ │ │ │ ├── stm32f417xx.h
│ │ │ │ ├── stm32f427xx.h
│ │ │ │ ├── stm32f429xx.h
│ │ │ │ ├── stm32f437xx.h
│ │ │ │ ├── stm32f439xx.h
│ │ │ │ ├── stm32f446xx.h
│ │ │ │ ├── stm32f469xx.h
│ │ │ │ ├── stm32f479xx.h
│ │ │ │ ├── stm32f4xx.h
│ │ │ │ └── system_stm32f4xx.h
│ │ │ └── Source
│ │ │ └── Templates
│ │ │ ├── arm
│ │ │ │ └── startup_stm32f429xx.s
│ │ │ └── system_stm32f4xx.c
│ │ └── Include
│ │ ├── arm_common_tables.h
│ │ ├── arm_const_structs.h
│ │ ├── arm_math.h
│ │ ├── cmsis_armcc.h
│ │ ├── cmsis_armcc_V6.h
│ │ ├── cmsis_gcc.h
│ │ ├── core_cm0.h
│ │ ├── core_cm0plus.h
│ │ ├── core_cm3.h
│ │ ├── core_cm4.h
│ │ ├── core_cm7.h
│ │ ├── core_cmFunc.h
│ │ ├── core_cmInstr.h
│ │ ├── core_cmSimd.h
│ │ ├── core_sc000.h
│ │ └── core_sc300.h
│ └── STM32F4xx_HAL_Driver
│ ├── Inc
│ │ ├── Legacy
│ │ │ └── stm32_hal_legacy.h
│ │ ├── stm32f4xx_hal_cortex.h
│ │ ├── stm32f4xx_hal_def.h
│ │ ├── stm32f4xx_hal_dma_ex.h
│ │ ├── stm32f4xx_hal_dma.h
│ │ ├── stm32f4xx_hal_flash_ex.h
│ │ ├── stm32f4xx_hal_flash.h
│ │ ├── stm32f4xx_hal_flash_ramfunc.h
│ │ ├── stm32f4xx_hal_gpio_ex.h
│ │ ├── stm32f4xx_hal_gpio.h
│ │ ├── stm32f4xx_hal.h
│ │ ├── stm32f4xx_hal_pwr_ex.h
│ │ ├── stm32f4xx_hal_pwr.h
│ │ ├── stm32f4xx_hal_rcc_ex.h
│ │ ├── stm32f4xx_hal_rcc.h
│ │ ├── stm32f4xx_hal_tim_ex.h
│ │ ├── stm32f4xx_hal_tim.h
│ │ └── stm32f4xx_hal_uart.h
│ └── Src
│ ├── stm32f4xx_hal.c
│ ├── stm32f4xx_hal_cortex.c
│ ├── stm32f4xx_hal_dma.c
│ ├── stm32f4xx_hal_dma_ex.c
│ ├── stm32f4xx_hal_flash.c
│ ├── stm32f4xx_hal_flash_ex.c
│ ├── stm32f4xx_hal_flash_ramfunc.c
│ ├── stm32f4xx_hal_gpio.c
│ ├── stm32f4xx_hal_pwr.c
│ ├── stm32f4xx_hal_pwr_ex.c
│ ├── stm32f4xx_hal_rcc.c
│ ├── stm32f4xx_hal_rcc_ex.c
│ ├── stm32f4xx_hal_tim.c
│ ├── stm32f4xx_hal_tim_ex.c
│ └── stm32f4xx_hal_uart.c
├── Inc
│ ├── mxconstants.h
│ ├── stm32f4xx_hal_conf.h
│ ├── stm32f4xx_it.h
│ └── TypeDef.h
├── MDK-ARM
│ ├── DebugConfig
│ │ └── usart_STM32F429IGTx.dbgconf
│ ├── JLinkLog.txt
│ ├── JLinkSettings.ini
│ ├── RTE
│ │ └── RTE_Components.h
│ ├── startup_stm32f429xx.lst
│ ├── startup_stm32f429xx.s
│ ├── usart.uvguix.Administrator
│ ├── usart.uvguix.csw
│ ├── usart.uvoptx
│ └── usart.uvprojx
├── Src
│ ├── main.c
│ ├── stm32f4xx_hal_msp.c
│ └── stm32f4xx_it.c
└── usart.ioc
20 directories, 88 files
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论