历史上的今天
返回首页

历史上的今天

今天是:2024年09月03日(星期二)

正在发生

2019年09月03日 | STM32应用简章之串口配置

2019-09-03 来源:eefocus

①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();


③GPIO端口模式设置:GPIO_Init();


④串口参数初始化:USART_Init();


⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)


      NVIC_Init();


      USART_ITConfig();


⑥使能串口:USART_Cmd();


⑦编写中断处理函数:USARTx_IRQHandler();


⑧串口数据收发:


void USART_SendData();//发送数据到串口,DR


uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据


⑨串口传输状态获取:


FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);


void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);


#if EN_USART1_RX   //如果使能了接收

//串口1中断服务程序

//注意,读取USARTx->SR能避免莫名其妙的错误   

u8 USART_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.

//接收状态

//bit15, 接收完成标志

//bit14, 接收到0x0d

//bit13~0, 接收到的有效字节数目

u16 USART_RX_STA=0;       //接收状态标记   

  

void uart_init(u32 bound){

  //GPIO端口设置

  GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟

  

//USART1_TX   GPIOA.9

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出

  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

   

  //USART1_RX   GPIOA.10初始化

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入

  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

 

  //Usart1 NVIC 配置

  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能

NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器

  

   //USART 初始化设置

 

USART_InitStructure.USART_BaudRate = bound;//串口波特率

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式

USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位

USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式

 

  USART_Init(USART1, &USART_InitStructure); //初始化串口1

  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断

  USART_Cmd(USART1, ENABLE);                    //使能串口1 

 

}


推荐阅读

史海拾趣

Abundance Enterprise Company公司的发展小趣事

随着国内市场的逐渐饱和,Abundance Enterprise Company开始积极拓展国际市场。公司积极参与国际电子展览和交流活动,与全球知名电子企业建立了广泛的合作关系。同时,公司还在海外设立了多个分支机构,进一步拓展国际业务。这些举措不仅提升了公司的国际影响力,也为公司的长期发展奠定了坚实基础。

BK Precision公司的发展小趣事

为了满足全球市场的需求,BK Precision开始实施全球化战略。公司不仅在美国本土设立了多个办事处和研发中心,还在欧洲和亚洲等地建立了分支机构。通过与国际授权分销商的合作,BK Precision成功地将产品推向全球市场,并赢得了众多国际客户的信赖。同时,公司还积极参与国际电子行业的展会和交流活动,提升品牌知名度和影响力。

Compensated Devices Inc公司的发展小趣事

面对国内外市场的激烈竞争,CDI积极寻求与合作伙伴的共赢发展。公司与多家知名电子设备制造商建立了长期稳定的合作关系,共同开发新产品、拓展新市场。通过合作,CDI不仅提升了自身的技术水平,还成功打入了多个国际市场,实现了业务的快速增长。

Dover Corporation公司的发展小趣事

Dover Corporation自上市以来,一直保持着持续盈利和向投资者发放红利的记录。公司凭借其强大的业务能力和稳健的财务状况,赢得了投资者的信任和支持。这一成绩的取得不仅彰显了Dover在业务运营方面的实力,也为其未来的发展奠定了坚实的基础。

请注意,以上故事框架仅为概述性质,具体细节和数据可能需要根据Dover Corporation的实际情况进行调整和补充。

EMC [ELAN Microelectronics Corp]公司的发展小趣事

为了进一步扩大市场份额,义隆电子积极实施国际化战略。公司在台湾新竹科学园区设立了全球营运总部,并在亚、美等二大洲建立了密集的行销暨技术中心。通过不断拓展国际市场,义隆电子的产品已经销售到全球各地,赢得了广泛的客户认可和信赖。同时,公司还积极寻求与国际知名企业的合作机会,共同推动行业技术的发展和创新。

DECON公司的发展小趣事

在电子行业中,技术更新换代迅速,DECON公司深知技术创新的重要性。因此,公司不断投入研发资金,引进高端技术人才,加强自主创新,推出了多款具有领先技术的连接器产品。这些产品不仅满足了市场需求,还提高了公司的市场竞争力。同时,公司还积极与国内外知名企业合作,共同研发新产品,推动了电子连接器行业的发展。

问答坊 | AI 解惑

2007 DSP产业如何变化?两大DSP巨头看法不尽相同

德州仪器和模拟器件公司(ADI)是全球最大的两家DSP厂商,它们认为明年DSP市场将出现巨大变化。基本和以前一样,虽然都认为将发生变化,但它们对于变化程度的看法分歧较大。 “市场处于大转变过程之中。”德州仪器DSP部门的业务拓展经理Gene A. Frant ...…

查看全部问答>

求高压脉冲发生器

哪位大侠有高压脉冲发生器的原理图,可否给分享一下,谢谢啦。要直流供电的,9V---12V左右。 谢谢啦。…

查看全部问答>

人造闪电

52岁的澳洲男子彼得·特伦是位业余科学家,他最大的爱好便是制作出形形色色令人眩目标“人造闪电”,最高电压可达50万伏!这些精彩绝伦的实验包含,闪电束穿过篮球架和梯子、旋转火花包围汽车、头顶闪电笼中信步,等等。据悉,特伦“触电”已有40个 ...…

查看全部问答>

EVC移植到VC的问题?

我是VC新手,EVC也没有做过,现在接到一个任务 把一个EVC下的程序移植到VC下, 需要注意什么问题? 哪些地方需要修改? 头大的很呐@_@…

查看全部问答>

请问有没有STM8汇编的例程?

                                 因为之前ST7一直用汇编,所以想STM8也用汇编。…

查看全部问答>

请问各位大虾有用过可见光传感器吗?

  请问各位大虾有用过可见光传感器吗?在测试使用过程中出现什么问题?欢迎大家参与哦…

查看全部问答>

TEST4F232H5_V1.0 实验指导书

TEST4F232H5_V1.0 实验指导书…

查看全部问答>

关于芯片datasheet在pcb绘制中的应用

想跟大家讨教一些关于芯片datasheet在pcb绘制中的使用,希望大家多多指点…

查看全部问答>

求一个开发软件,谢谢

求大神给我一个STM32的Keil软件,就是Keil for arm…

查看全部问答>