历史上的今天
返回首页

历史上的今天

今天是:2025年04月25日(星期五)

正在发生

2020年04月25日 | stm32f103 串口通讯

2020-04-25 来源:eefocus

串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单 便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。


stm32f103 串口通讯大致可以分为这五步

1.初始化gpio口,使能RX和TX引脚GPIO时钟

2.初始化USART,和USART时钟;

3.初始化nvic 总中断

4.编写字符串发送函数

5.编写USART 中断服务函数


1.初始化gpio口,使能RX和TX引脚GPIO时钟

void init_uart_gpio(void)

{

GPIO_InitTypeDef tx;

GPIO_InitTypeDef rx;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

tx.GPIO_Mode=GPIO_Mode_AF_PP;

tx.GPIO_Pin=GPIO_Pin_9;

tx.GPIO_Speed=GPIO_Speed_50MHz;

rx.GPIO_Mode=GPIO_Mode_IN_FLOATING;

rx.GPIO_Pin=GPIO_Pin_10;

GPIO_Init(GPIOA,&tx);

GPIO_Init(GPIOA,&rx);

}


2.初始化USART,和USART时钟;

void init_uart1()

{

USART_InitTypeDef uart;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

uart.USART_BaudRate=115200;

uart.USART_HardwareFlowControl= USART_HardwareFlowControl_None;

uart.USART_Parity=USART_Parity_No;

uart.USART_StopBits=USART_StopBits_1;

uart.USART_WordLength=USART_WordLength_8b;

uart.USART_Mode= USART_Mode_Rx|USART_Mode_Tx;

USART_Init(USART1,&uart);

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

USART_Cmd(USART1,ENABLE);


3.初始化nvic 总中断

void init_uart_nvic(void)

{

NVIC_InitTypeDef nvic;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

nvic.NVIC_IRQChannel=USART1_IRQn;

nvic.NVIC_IRQChannelPreemptionPriority=1;

nvic.NVIC_IRQChannelSubPriority= 1;

nvic.NVIC_IRQChannelCmd =ENABLE;

NVIC_Init(&nvic);

}


4.编写字符串发送函数

void Usart_SendByte(USART_TypeDef *pUSARTx,uint8_t ch)

{

USART_SendData(pUSARTx,ch);

while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TXE)==RESET);

}

void Usart_SendString(USART_TypeDef *pUSARTx,char *str)

{

while(*str!='')

{

Usart_SendByte(pUSARTx,*str);

str++;

}

while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET);

}


5.编写USART 中断服务函数

void USART_IRQHandler(void)

{

uint8_t ucTemp;

if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET){

ucTemp=USART_ReceiveData(USART1);

USART_SendData(USART1,ucTemp);

}

}

推荐阅读

史海拾趣

成都振芯/国腾(CORPRO)公司的发展小趣事

随着技术的不断进步和市场需求的不断变化,CORPRO始终保持着对创新的追求和投入。近年来,公司不仅加强了在集成电路设计、微波组件开发等领域的研发能力,还积极拓展物联网、大数据等新兴领域的应用场景。这些努力使得CORPRO在行业内获得了广泛认可,并多次荣获各类荣誉奖项。例如,在2022年5月20日,CORPRO入选了四川省拟推荐2022年度国家技术创新示范企业公示名单,这一荣誉再次证明了CORPRO在电子行业的实力和影响力。

总之,成都振芯/国腾(CORPRO)公司的发展历程充满了挑战与机遇。通过不断的努力和创新,CORPRO已经成长为电子行业中一家具有强大实力和广泛影响力的企业。未来,CORPRO将继续致力于技术创新和市场拓展,为电子行业的发展贡献更多力量。

贝特莱公司的发展小趣事

随着技术研发的不断深入和产品线的逐渐完善,贝特莱于2016年1月21日正式挂牌上市,进军资本市场。这一举措不仅为公司带来了更多的资金支持,也进一步提升了贝特莱的品牌知名度和市场竞争力。上市后,贝特莱得以加速其研发步伐,不断推出创新产品,满足市场的多样化需求。

ERGOBAHCO公司的发展小趣事

在快速发展的同时,ERGOBAHCO公司始终不忘履行社会责任和推动可持续发展。公司积极参与社会公益事业,捐款捐物支持贫困地区的教育、医疗等事业。同时,ERGOBAHCO公司还注重环保和节能减排工作,通过引进先进的环保技术和设备,实现了生产过程的绿色化、低碳化。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

中电熊猫(CEC)公司的发展小趣事

随着市场竞争的加剧和技术的不断发展,中电熊猫不断调整市场布局和战略方向。公司坚持开放联合的战略思路,善于搭建平台、取长补短、实现合作共赢。同时,中电熊猫还积极关注国内外市场动态和技术趋势,不断调整和优化产品结构和服务模式。通过这些努力,中电熊猫在保持市场领先地位的同时,也为行业的可持续发展做出了积极贡献。

Fremont_Micro_Devices_USA公司的发展小趣事

2007年,中电熊猫母公司中国电子信息集团公司(CEC)对熊猫电子进行了重组,全面推进平板显示全产业链发展。2015年,中电熊猫投资291.5亿元建设的8.5代液晶面板生产线投产,成为全球首条应用金属氧化物IGZO技术的超高分辨率液晶面板生产线。这一举措标志着中电熊猫在液晶面板产业中占据了重要地位,为后续的发展奠定了坚实基础。

DFI公司的发展小趣事

随着市场竞争的加剧,DFI意识到单一产品的竞争力有限。因此,公司开始寻求垂直整合的机会,与罗升等公司合作,共同开发智能制造的全面性解决方案。这一举措不仅使DFI能够提供更完整的产品线,还增强了其在行业中的竞争力。通过与合作伙伴的紧密合作,DFI成功推出了一系列具有竞争力的智能制造解决方案,赢得了市场的广泛认可。

问答坊 | AI 解惑

中兴_嵌入式系统讲义

一、嵌入式系统的基本概念 IEEE 对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置(Devices used to control or Assist the Opetation of Equipment,Machinery or Plants)。 目前国内比较公认的定义:以应用为中心、以计算机技 ...…

查看全部问答>

Linux下烧写镜像

小弟刚刚接触ARM,跟着开发板的说明移植内核,发现自己的Linux系统下不会烧写镜像,可以说是啥也不会,望有经验的同志告之 PS:小弟用惯了Linux,不想回到Windows下去,望能有详细的方法(小白一个)…

查看全部问答>

寻一块钱以下的单片机(带一个AD )

做个项目,需要一块钱以下的单片机,带一个AD 请大家推荐…

查看全部问答>

嵌入式人才的会集地-中国嵌入式ARM超级群

中国嵌入式ARM超级群109739525 为嵌入式从业者提供交流平台,旨在推动嵌入式ARM在中国的普及和发展,欢迎各位高手们加入互通有无,互相学习!…

查看全部问答>

急了,100分求助,按键音怎么改成别的声音啊?

其他提示音都可以改,就这个按键音不知道怎么改?可是用户就要改别的提示音,向各位大侠求助!…

查看全部问答>

求WINCE5.0下JAVA语言的开发软件~~

RT 求 用JAVA语言的做WINCE5.0下应用程序 的软件 感激不尽~~ …

查看全部问答>

WINCE5.0 显示和ImageViewer问题

接触WINCE5.0不久,不知道怎么办. WINCE 原来的缺省显示支持240*320的LCD,而我们用的LCD是320*240.在PB中把WINCE5.0自带的ImageViewer软件加入过来,发现很多地方,打开该应用程序菜单项窗口以后,有些窗口显示框超出了我的LCD.由于看不到WINCE源代码, ...…

查看全部问答>

AN016 — 电源管理技术及功耗计算.pdf

本帖最后由 dontium 于 2015-1-23 13:22 编辑 C8051 …

查看全部问答>

FatFs应用总结

多年来一直在使用FatFs开发各种项目(特别感谢FatFs作者的奉献),但都是或多或少的应用,并没有全面的应用到FatFs的所有功能。最近一个项目需要操作大量的文件,终于进入FstFs应用的全面期,也遇到了不少问题,现将逐步总结这些应用中遇到的各种问 ...…

查看全部问答>

在2812上实现CAN通信的问题

我做了一个基于CAN总线的通信程序,从上位机定时接收控制指令,但大概每过3、4个小时就会收到一帧错误报文。这个问题困扰我了很久,一直解决不了,请哪位大侠帮忙指点指点,多谢了。 问题是这样的,我用19号can邮箱从上位机接收数据,接收的数据为 ...…

查看全部问答>