历史上的今天
返回首页

历史上的今天

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

2018年12月21日 | STM32HAL库中断模式串口初始化收发数据

2018-12-21 来源:eefocus

hal库里面路径:STM32Cube_FW_L0_V1.10.0\Projects\STM32L053C8-Discovery\Examples \UART\UART_TwoBoards_ComIT


工程是串口1中断收发模式配置


 


UART_HandleTypeDef UartHandle;        //串口结构体变量


   UartHandle.Instance        = USARTx;   //初始化串口实例 USART1


   UartHandle.Init.BaudRate   = 9600;     //设置波特率


   UartHandle.Init.WordLength = UART_WORDLENGTH_8B; //8位数据位


   UartHandle.Init.StopBits   = UART_STOPBITS_1;   //一个停止位


   UartHandle.Init.Parity     = UART_PARITY_NONE; //奇偶校验位无


   UartHandle.Init.HwFlowCtl  = UART_HWCONTROL_NONE; //硬件控制流无


   UartHandle.Init.Mode       = UART_MODE_TX_RX;    //RX和TX模式


  


   if(HAL_UART_Init(&UartHandle) != HAL_OK)        //使能结构体变量 


   {


     Error_Handler();


   }


 


 


void HAL_UART_MspInit(UART_HandleTypeDef *huart)  //自己写的函数,对串口引脚初始化 在 HAL_UART_Init函数里面自动调用 不用声明,


{


   GPIO_InitTypeDef  GPIO_InitStruct;


  


   USARTx_TX_GPIO_CLK_ENABLE();   //串口引脚时钟使能


   USARTx_RX_GPIO_CLK_ENABLE();


   USARTx_CLK_ENABLE();               //串口时钟使能


  


   /* UART TX GPIO pin configuration  */


   GPIO_InitStruct.Pin       = USARTx_TX_PIN;


   GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;


   GPIO_InitStruct.Pull      = GPIO_NOPULL;


   GPIO_InitStruct.Speed    = GPIO_SPEED_FREQ_HIGH  ;


   GPIO_InitStruct.Alternate = USARTx_TX_AF;   //引脚功能复用 来作为串口1的TX


  


   HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct);


    


   /* UART RX GPIO pin configuration  */


   GPIO_InitStruct.Pin = USARTx_RX_PIN;


   GPIO_InitStruct.Alternate = USARTx_RX_AF;


   


   HAL_GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStruct);


    


    /* NVIC for USART1 */


   HAL_NVIC_SetPriority(USARTx_IRQn, 0, 1);   //设置中断优先级


   HAL_NVIC_EnableIRQ(USARTx_IRQn);    //使能中断


}


 


void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) //自己写函数 失能串口功能


{


  失能外围时钟


    将GPIO和NVIC配置恢复到默认状态


}


 


 


//it.c中的中断函数


void USART1_IRQHandler(void)

{

   HAL_UART_IRQHandler(&UartHandle);

}


   //串口配置完成  


********************************************************************************


使能一下串口接收函数


 


uint8_t aRxBuffer,      //


HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer,1);  //串口配置完成后使能一下串口接收函数


 


发送函数  怎么使用可以自己封装


uint8_t aTxBuffer[] = " ****UART_TwoBoards_ComIT****  ";


HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)aTxBuffer,strlen(aTxBuffer));//把aTxBuffer数据发送出去


 


//中断回调函数  程序自动调用  收到的数据会存储到Data_BUF数组中,每次使用完记得把 FramLength清零   变量全局


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)


{


   if(FramLength<(BUF_MAX_LEN-1))   //判断接受长度                  


     Data_BUF[FramLength++]=rxdata;


   HAL_UART_Receive_IT(&usart1_handler,&rxdata,1); //每次接收完之后重新使能串口接收接受一个字节


}


推荐阅读

史海拾趣

amcc [applied micro circuits corp]公司的发展小趣事

Applied Micro Circuits Corp(AMCC)是一家半导体公司,主要从事高性能处理器和高速互连解决方案的设计和制造。以下是关于AMCC公司发展的五个相关故事:

  1. 公司成立与早期发展:AMCC公司于1979年由Hemant Kanakia等人在美国加利福尼亚州的圣塔克拉拉创立。公司最初专注于设计和制造用于通信和数据中心应用的集成电路芯片。在成立初期,AMCC致力于开发高性能、低功耗的处理器和互连解决方案,以满足不断增长的通信市场需求。

  2. 技术创新与产品发布:AMCC公司在技术创新方面处于行业领先地位。公司持续投入研发,并推出了一系列创新产品。1997年,AMCC发布了第一款64位PowerPC处理器,开创了其在高性能处理器市场的先河。随后,公司不断推出新一代的处理器产品,包括PowerPC、ARM等系列,以满足不同客户的需求。

  3. 业务拓展与市场扩张:随着时间的推移,AMCC不断拓展其业务范围和市场覆盖。公司不仅在通信领域取得了成功,还逐渐进军数据中心、云计算、存储等新兴领域。AMCC通过与各大客户和合作伙伴的紧密合作,扩大了产品的市场份额和影响力。

  4. 收购与整合:AMCC通过一系列收购和整合,加强了自身的技术实力和市场竞争力。公司收购了一些在特定领域具有核心技术的公司,如Tahoe Networks(2004年)、3ware(2005年)、Mindspeed Technologies(2014年)等。这些收购使得AMCC得以快速扩大产品线,并加速了公司在新兴市场的布局。

  5. 英特尔收购:2016年,英特尔公司宣布以约17亿美元的价格收购AMCC。这一交易使得AMCC成为英特尔旗下的子公司,英特尔得以借助AMCC在通信和数据中心领域的技术优势和客户资源,进一步拓展其在半导体行业的地位。此次收购也标志着AMCC作为独立实体的终结,但其在半导体行业的技术贡献和市场影响将持续延续。

这些故事展示了AMCC公司在技术创新、产品发布、业务拓展、收购整合等方面的发展历程,以及其作为半导体行业重要参与者的地位和影响力。

Hi-Light Electronic Co Ltd公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的关键设备,其专业性与科普性并存。从广义上讲,任何能与电视机连接并处理信号的网络终端设备均可视为机顶盒。随着技术的发展,机顶盒已从早期的模拟频道增补器演变为支持高清、甚至4K超高清内容的数字设备。

机顶盒的核心功能在于接收来自有线电缆、卫星、宽带网络及地面广播的数字电视信号,并通过解码处理,将这些信号转换成适合电视机播放的音视频格式。此外,机顶盒还集成了多种增值服务,如电子节目指南、因特网网页浏览、在线购物、视频点播等,极大地丰富了用户的观看体验。

根据功能和应用场景的不同,机顶盒可分为数字机顶盒和网络机顶盒两大类。数字机顶盒侧重于实现数模转换,让用户能在模拟电视上观看数字电视;而网络机顶盒则能接入互联网,提供更广泛的娱乐内容和互动服务。

在技术不断进步的今天,机顶盒正朝着高清化、智能化方向发展。未来,随着人工智能、云计算等技术的融合应用,机顶盒将能提供更个性化的节目推荐、语音控制等便捷功能,进一步提升用户的观看体验。同时,随着智能电视的普及,机顶盒作为智能电视的有效补充,其市场需求也将持续增长。

HB公司的发展小趣事

服务:Hartmann Codier GmbH深知客户是企业发展的基石。因此,公司始终将客户服务放在首位,致力于为客户提供优质的产品和服务。公司建立了完善的客户服务体系,包括售前咨询、售中支持和售后服务等环节。

成果:通过不断优化客户服务流程和提高服务质量,Hartmann Codier GmbH赢得了广大客户的信赖和支持。公司与客户之间建立了长期稳定的合作关系,共同推动了电子行业的繁荣发展。同时,公司也根据客户的反馈和需求,不断改进产品和服务,以满足市场的不断变化和升级。

ApexTool Group公司的发展小趣事

随着全球电子市场的不断扩大,Apex Tool Group积极实施全球化战略,拓展市场版图。公司在全球范围内建立了多个生产基地和分销网络,以便更好地服务全球客户。同时,Apex Tool Group还积极与全球知名的电子企业开展合作,共同推动电动工具技术的创新和发展。这些举措使得Apex Tool Group在全球电子行业中的地位日益稳固。

格莱尔(GLE)公司的发展小趣事

深圳市格莱尔电子有限公司成立于2005年,初期专注于电感产品的研发与生产。在创始人及团队的共同努力下,公司迅速在行业内崭露头角。随着技术的不断积累和市场需求的扩大,格莱尔逐渐扩大生产规模,并于2012年在湖北投资建厂,自建两座工厂,厂房面积达2万平方米,员工人数增长至500人。这一系列的举措不仅提升了公司的生产能力,也为其后续的发展奠定了坚实的基础。

风华邦科(FH-BK)公司的发展小趣事

广东粤翔航空服务有限公司(假设为FlyWin集团下的子公司)于2019年在珠海市金湾区成立,专注于航空咨询服务和航空器材租赁买卖。在成立初期,公司面临着航空服务市场的高度竞争和严格的行业监管。然而,凭借对市场的敏锐洞察和精准定位,粤翔航空通过提供专业的航空咨询和高效的器材租赁服务,逐渐在行业内站稳脚跟。公司不仅为多家航空公司提供了一站式的咨询服务,还成功促成了多笔航空器材的租赁交易,为公司后续的发展奠定了坚实基础。

问答坊 | AI 解惑

建立用户的 LCD 字符显示

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 本篇技术解答说明了利用Hitachi HD44780或一个兼容控制器在LCD和VFD显示器上创建用户字符的方法 这里所描述的代码建立在ICOM.LIB  库里的显示函数基础上 ICOM.LIB是一个智能终端驱动库&nb ...…

查看全部问答>

巨盛CSC3800 datasheet

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 巨盛CSC3800 datasheet:带USB、SD、MMC、MS controler,带MP3/WMA decoder. 网上很难找的哦,需要的下吧。 …

查看全部问答>

UPS配备稳压电源要注意的问题

给UPS电源配备一台理想的适用的稳压电源需注意以下几个方面: (1).稳压电源必须提供可靠的市电过压输入保护功能。除参数稳压器在极限工作条件下,可在市电输入电压高达300V时长期向负载提供220V稳压电源外,其它几种交流稳压电源所允许的市电上限都 ...…

查看全部问答>

模拟电路--做毕设时心电图设计资料

模拟电路--做毕设时心电图设计资料…

查看全部问答>

对内存和总线的一些疑惑

看到书上说  64位机的内存就可以认为是无限的(科学家估计已知的宇宙有2的70多次的粒子),但64的意思应该是说有64个位吧,但这和内存是怎么产生关系的?看到书上知道64个位有64个数据线,可是地址线和位数的关系就不明显了,一个地址用 ...…

查看全部问答>

PCB封装导入3D模型时候如何有快捷键使其很好的对应?

就比如如下图。本来可以自己拖动3D 图形。放入其自己感觉合适的位置就行。但是总有些误差。有没有快捷键或者对应的脚快速对应的?…

查看全部问答>

BB Black 体验结尾 安装debian系统

继之前三篇体验心得 BB Black初体验一 BB Black初体验二 BB Black初体验三 今天花了一整天终于解决把μSD中的debian系统给跑起来了。十分开心,跟大家分享下。 首先,要说明下子,一是μSD卡中运行debian,而不是烧写到eMMC中,珍爱板子,少擦 ...…

查看全部问答>

TMS320F28335项目开发记录8_28335之GPIO引脚

GPIO(General-Purpose Input/Output)——通用输入/输出口;       DSP28335 GPIO模块分为三类IO口:PORTA(0-31),PORTB(32-63),PORTC(64-87) 对GPIO模块的设置主要通过三类寄存器来完成,分别是:控制寄存器、数据寄存器、 ...…

查看全部问答>

ULN2003做驱动舵机电路这样可以吗

用ULN2003做8路舵机驱动电路,ULN2003    1——7脚接单片机输入PWM,8——16输出给舵机 ,像图这样接线可以吗?第一次做这个,求大神助攻 …

查看全部问答>

电源转换模块原理求解

如下是我们产品中的电源转换电路,哪位大神可以帮忙给小弟解释下这个回路的原理?输出最大电流可以达到多少,感谢~! …

查看全部问答>