历史上的今天
返回首页

历史上的今天

今天是:2024年12月24日(星期二)

正在发生

2019年12月24日 | 关于stm8l05RB的usart1串口复用A2,A3配置

2019-12-24 来源:eefocus

#include "uart1.h"

#include "stm8l15x.h"

void Uart1_Init(void)

{

        CLK_PeripheralClockConfig(CLK_Peripheral_USART1,ENABLE);

        

        SYSCFG_REMAPDeInit();

        SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA,ENABLE);

        

GPIO_Init(GPIOA, GPIO_Pin_2, GPIO_Mode_Out_PP_High_Fast);//TXD

  GPIO_Init(GPIOA, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);//RXD

  USART_DeInit(USART1); //复位UART1 

/*

* 将UART1配置为:

* 波特率 = 115200

* 数据位 = 8

* 1位停止位

* 无校验位

* 使能接收和发送

*/

USART_Init(USART1,(u32)115200, USART_WordLength_8b, USART_StopBits_1, 

USART_Parity_No, USART_Mode_Tx|USART_Mode_Rx);

USART_ClearITPendingBit(USART1, USART_IT_RXNE);

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启接收中断

//USART_ITConfig(USART1, USART_IT_TC, ENABLE);//开启接收中断

USART_Cmd(USART1, ENABLE); //使能UART2

}



/*******************************************************************************

 * 名称: UART1_SendByte

 * 功能: UART1发送一个字节

 * 形参: data -> 要发送的字节

 * 返回: 无

 * 说明: 无 

 ******************************************************************************/

void UART1_SendByte(u8 data)

{

  USART_SendData8(USART1, data);

/* 等待传输结束 */

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

}



/*******************************************************************************

 * 名称: UART1_SendStr

 * 功能: UART1发送len个字符

 * 形参: data -> 指向要发送的字符串

 *       len -> 要发送的字节数

 * 返回: 无

 * 说明: 无 

 ******************************************************************************/

void UART1_SendStr(u8 *str)

{

while(*str != '')

{

UART1_SendByte(*str++); /* 循环调用发送一个字符函数 */

}



/*******************************************************************************

 * 名称: UART2_ReceiveByte

 * 功能: UART2接收一个字符

 * 形参: 无

 * 返回: 接收到的字符

 * 说明: 无 

 ******************************************************************************/

u8 UART1_ReceiveByte(void)

{

u8 UART1_RX_BUF; 


/* 等待接收完成 */

while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);


UART1_RX_BUF = USART_ReceiveData8(USART1);


return  UART1_RX_BUF;

}



/*******************************************************************************

 * 名称: fputc

 * 功能: 重定向c库函数printf到UART1

 * 形参: 无

 * 返回: 要打印的字符

 * 说明: 由printf调用 

 ******************************************************************************/

#ifdef _IAR_

int fputc(int ch, FILE *f)

{  

/* 将Printf内容发往串口 */

UART1_SendByte(ch);


return (ch);

}

#else

PUTCHAR_PROTOTYPE

{

   /* Write a character to the UART1 */

UART1_SendByte(c);

return (c);

}

#endif



GETCHAR_PROTOTYPE

{

#ifdef _COSMIC_

   char c = 0;

#else

   int c = 0;

#endif

   /* Loop until the Read data register flag is SET */

   while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);

   c = USART_ReceiveData8(USART1);

   return (c);

}

推荐阅读

史海拾趣

Electronic公司的发展小趣事

小米,作为一家年轻的科技公司,在电子行业的发展中展现了惊人的成长速度。小米凭借出色的产品设计和创新的营销策略,迅速在手机市场获得了巨大成功。随着业务的不断拓展,小米还涉足了智能家居、物联网和互联网金融等领域,形成了完整的生态布局。小米通过提供高性价比的产品和优质的服务,赢得了大量年轻用户的喜爱和支持。

DIALIGHT公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

Hasco Relays and Electronics International Corp公司的发展小趣事

Harris公司最初成立于1890年代,起初以无线电通信技术为核心业务。在早期,公司凭借其创新的无线电通信技术,在通信领域迅速崭露头角。这一时期,Harris不仅为军事领域提供了关键的通信解决方案,还逐步拓展到商业和民用市场,为当时的电话、电报等通信方式带来了革命性的变化。通过不断的技术研发和产品创新,Harris逐渐奠定了其在电子行业的重要地位。

HCC Industries公司的发展小趣事

面对日益激烈的市场竞争和快速变化的市场需求,HCC Industries在2020年启动了数字化转型计划。公司投入大量资金引入先进的自动化生产线和智能化管理系统,实现了从原材料采购到成品出厂的全链条数字化管理。这一举措不仅大幅提高了生产效率和产品质量,还降低了运营成本和库存风险。同时,HCC还利用大数据和人工智能技术优化产品设计和市场策略,进一步提升了其市场竞争力。

DL Instruments LLC公司的发展小趣事

经过多年的发展,DL Instruments已经成为电子行业中一家具有重要影响力的企业。然而,公司并没有因此而满足。相反,它继续加大研发投入、拓展产品线、优化生产流程、提高产品质量和服务水平。展望未来,DL Instruments将继续秉承“创新、卓越、服务”的理念,为电子行业的发展做出更大的贡献。

请注意,这些故事是基于现有信息进行的概述和虚构,并非真实的历史事件。如有需要,您可以进一步查阅相关资料或联系DL Instruments公司获取更详细的信息。

Autotrol公司的发展小趣事

Autotrol公司的齿轮传动链产品因其卓越的性能和广泛的应用领域而备受瞩目。公司积极与各行业合作伙伴建立合作关系,将其产品应用于水处理、汽车、采暖通风与空调、翻转广告、医院、农业、照明等多个领域。通过与合作伙伴的紧密合作,Autotrol不仅拓展了市场份额,还提升了品牌影响力。

问答坊 | AI 解惑

电源资料

认为好的就下     顺便顶一下 啊…

查看全部问答>

如何做嵌入式下的无线软件升级系统?

是用socket做还是用web services做?如果要用web services是不是evc不能用,只能用vs.net呢?望各位指教!…

查看全部问答>

请教大家:wince下有什么好的UI控件?

请教大家:wince下有什么好的UI控件?…

查看全部问答>

各位大侠帮帮忙

我的电脑没有串口应该怎么接到DP51单片机仿真实验仪??…

查看全部问答>

STM32的FSMC地址输出问题

                                 我最近使用STM32的FSMC发现这样一个奇怪的现象,FSMC输出的地址信号整体向右偏移了一位,数据信号正常,例如我要向 ...…

查看全部问答>

【低功耗】28纳米FPGA: 降低功耗 提高带宽

 低功耗和高带宽是下一代高端设计的两个主要需求。对全球范围多个应用领域的调研表明,以相同甚至更低功耗及成本来实现更大的带宽已成为大势所趋。现在应对带宽不断增长的技术是演进中的40G和100G系统(以及即将出现的400G系统)。设计下一代FPGA来 ...…

查看全部问答>

lpc1114 SPI从机接收问题

求助各位大侠,最近在弄lpc1114的spi,作为从机跟其他CPU通信,参考周立功的代码,但总之能接收第一个字节,spi中断方式有:1.出现接收上溢的时候产生中断。2.接收超时时产生中断.3.Rx FIFO至少有一半为满时,产生中断4,Tx FIFO至少有一半为空时产 ...…

查看全部问答>

关于vxworks文件系统的几个问题,希望大家帮帮忙

最近在看有关vxworks文件系统的资料。想问大家几个问题:1,vxworks默认的文件系统是哪个,还是说是在制作映像的时候再添加。1:vxworks系统里面有没有直接对磁盘读写的函数呢,不是文件哈。就像windows里面的readfile和writefile那种。希望大家能帮 ...…

查看全部问答>

有没有在医疗方面做CCD的和DSP的朋友?

有没有在医疗方面做CCD的和DSP的朋友?如果有的话请加Q357947967,我们彼此交流交流。…

查看全部问答>

紧急求助!!基于51的密码锁LCD12864显示 I2C保存

在LCD12864上进行密码输入显示,I2C储存,需要实现在每输入一位密码后进行清除按键的判断,若清除按键按下则进行密码的一位清除!!  怎样用C语言实现,求大神编段C程序解惑!!!!!!!!!!!!!!!!!!!!! 下面是当第一位 ...…

查看全部问答>