历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2021年12月21日 | STM32HAL库DMA模式串口收发

2021-12-21 来源:eefocus

一.简单了解

串口模式实现有三种

1.普通模式:在主函数中接收函数

2.中断模式:产生的不影响主程序运行

3. DMA模式:与主函数互不影响,独立运行

本文记录第一种普通模式。

学习目标是:实现DMA串口的数据收发,发送数据时LED灯电平翻转。


二.步骤

1-在原来工程基础上,在stm32cubemx中增加dma,usart1中的DMA Settings,ADD

USART1_RX循环接收和USART1_TX单次发送

2-添加MDA宏定义代码


#define UART1_DMA

uint8_t TdataDMA[]={"welcome to uart DMA!rn"};

uint8_t Rdata;


3-在主函数添加


#ifdef UART1_DMA

HAL_UART_Transmit_DMA(&huart1,TdataDMA,sizeof(TdataDMA));

HAL_UART_Receive_DMA(&huart1,&Rdata,1);

while(1)

{

#ifdef UART1_DMA

HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);

printf("WELCOME TO DMA test!rn");

HAL_Delay(2000);

#endif

}


4-回调函数添加


//回调函数

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{


#ifdef UART1_DMA

//把接收到的数据发送回屏幕,发送函数要在接收函数前面

HAL_UART_Transmit(&huart1,&Rdata,1,0xff);

HAL_UART_Receive_DMA(&huart1,&Rdata,1);

#endif

}


三.总结

DMA的优先级别过高,使用HAL_UART_Transmit_DMA可能数据还没接收完成的时候就被发送出去,所以采用普通发送,DMA接收,这样就不会漏发接收到的数据,所以在中断回调中使用了HAL_UART_Transmit(&huart1,&Rdata,1,0xff);

推荐阅读

史海拾趣

HI Microwave Technology Limited公司的发展小趣事

在稳固国内市场的同时,HI Microwave积极开拓国际市场,与全球多家知名企业建立了长期稳定的合作关系。公司凭借优质的产品和服务,赢得了国内外客户的广泛赞誉。此外,HI Microwave还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。通过与国际同行的交流与合作,公司不断吸收先进的管理理念和技术成果,为企业的持续发展注入了新的活力。

Fortiming Corporation公司的发展小趣事

背景:随着公司规模的扩大和产品线的丰富,Fortiming开始寻求更广阔的市场空间。

发展:公司积极参加国内外电子展会,展示其最新技术和产品,吸引了众多客户的关注。同时,Fortiming还与国际知名电子企业建立了合作关系,共同开发新产品,开拓新市场。这些合作不仅提升了Fortiming的品牌影响力,还为公司带来了更多的商业机会。

Alpha (Taiwan)公司的发展小趣事

随着数字化时代的到来,Alpha (Taiwan)公司紧跟时代步伐,积极推动数字化转型。公司引进先进的数字化设备和技术,对生产线进行智能化改造,提高了生产效率和产品质量。同时,公司还加强了对大数据、云计算等技术的应用,实现了对市场需求、客户反馈等信息的实时分析和处理。这些数字化转型的举措,不仅提升了公司的竞争力,也为公司的未来发展奠定了坚实的基础。

请注意,这些故事是基于一般情况和行业趋势构建的,并非Alpha (Taiwan)公司的实际经历。要了解Alpha (Taiwan)公司的真实发展故事,建议查阅相关公司的官方资料、新闻报道或行业分析报告。

巴丁微公司的发展小趣事

巴丁微积极参与各类电子行业的展会和交流活动,以此展示公司的技术实力和产品优势。在CITE2023第十一届中国电子信息博览会上,巴丁微向大家展示了其在电机驱动芯片在智能锁、气表、水表、个人护理及智能垃圾桶等领域的应用案例,吸引了大量专业人士和行业客户的关注。

通过展会,巴丁微不仅成功展示了公司的最新技术和产品,还加强了与业界同仁的交流与合作,进一步提升了公司在行业内的知名度和影响力。

捷嘉电子(Chequers Electronic)公司的发展小趣事

在国内市场取得一定成绩后,捷嘉电子开始将目光投向国际市场。通过与国外知名企业的合作,公司成功将产品出口到数十个国家。这一过程中,捷嘉电子不仅面临着文化差异、法律法规等挑战,还需要应对国际市场竞争的复杂性。然而,凭借着过硬的产品质量和专业的服务,捷嘉电子逐渐在国际市场上赢得了良好的口碑。

Gumstix公司的发展小趣事
检查电路中是否有异物导致短路,清理异物并修复受损部分。

问答坊 | AI 解惑

PCB LAYOUT技术大全

1.原理图常见错误: (1)ERC报告管脚没有接入信号:   a. 创建封装时给管脚定义了I/O属性;   b.创建元件或放置元件时修改了不一致的grid属性,管脚与线没有连上;   c. 创建元件时pin方向反向,必须非pin name ...…

查看全部问答>

模拟视频技术和应用

模拟视频技术和应用(一) 模拟视频信号已经应用了几十年,至今仍在使用。最原始且最常见的通用视频标准包括了NTSC(美国国家电视系统委员会)以及PAL(逐行倒相制式)。其它的现代消费模拟视频传输系统包括了S-Video、分量视频(Component Video) ...…

查看全部问答>

如何应用CDMA实现C/S结构系统中图片的传输?

最近有一个项目,C/S结构,需求中需要用无线传输来实现服务器到客户端的数据传输——经常会涉及到一些1M左右的图片传输。业主准备用CDMA来实现,除了用CDMA模块来实现,是不是也可以用CDMA上网卡来实现?哪位大侠有这方面的成功案例,给我介绍一下 ...…

查看全部问答>

CE 分区 怎么识别 成路径???

hi, 各位大哥大姐:    WinCe 分成2个区: 一个BINFS , 一个 FATFS, BINFS; fatfs  在注册表里面 设置下 就可以知道路径了 比如: /flash binfs  默认 是/windows 路径 现在的问题是:    我分了 ...…

查看全部问答>

GPRS编程

最近要做一个在LINUX平台下用ARM开发板开发一个GPRS数据传输的题目,以前没有接触过GPRS之类的东西, 特像各位大侠要点关于GPRS编程的材料,有实例更好 我QQ:380953301 Email:380953301@qq.com…

查看全部问答>

Anyone has techwell tw6802 datasheet?

Hi:     I am from taiwan. I don\'t know how to type simplified Chinese. I need tw6802 datasheet and I cannot find that datasheet in the internet except its brief introdution in the following url: http://www.techwelli ...…

查看全部问答>

关于魏坤示波器将采样数据转换成现实数据的理解

3.将采样数据转换成显示数据 LCD显示屏为320×240点阵的图形显示模块,内置RA8803 控制器。模块不仅可以显示单一的文本、图形,而且可以实现双图层的(“或”、“异或”、“同或”、“与”四种逻辑关系)合成显示。在本示波器中显示格线与波形是 ...…

查看全部问答>

vxworks ping不通 0xd0003

vxworks 网络下载时 会卡在loading那里很长时间,然后显示错误0xd0003 不能下载文件。有没有哪位知道怎么解决呢。另外,ftp服务器已开,无打印信息。还请各位不吝指导,兄弟我在这里谢谢了。…

查看全部问答>

MSP-EXP430G2外接32768晶振旁的电容是否要焊接

学习MSP-EXP430G2的板子时,TI给了一个32768的晶振,想把它焊上,不过看电路上还有两个12pf的电容的位置,但TI没给配,问下大家,要焊接时,那两个电容需要焊接么,不焊的话有多大区别或影响?…

查看全部问答>