历史上的今天
返回首页

历史上的今天

今天是:2025年03月06日(星期四)

正在发生

2020年03月06日 | 关于stm8l05RB的usart1串口复用A2,A3配置

2020-03-06 来源: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);

}

推荐阅读

史海拾趣

Chemtronics公司的发展小趣事

近年来,Chemtronics通过一系列收购活动进一步扩大了其业务范围。其中,最引人注目的是其子公司Wits以超过6亿元人民币的价格收购三星电机的电信模块业务。这一收购不仅增强了Chemtronics在电信领域的实力,也为其未来的发展打开了新的篇章。

这五个故事展示了Chemtronics公司在电子行业中的发展历程,从最初的清洁剂产品到完整的产品线,从遵循高标准的质量制造到成为大型企业的全资子公司,再到无铅产品线的创新和收购三星电机电信模块业务,每一个阶段都体现了公司的创新精神和对市场需求的敏锐洞察。这些故事不仅记录了Chemtronics的成长轨迹,也展示了其在电子行业中的重要地位。

华宇创公司的发展小趣事

在21世纪初,电子科技正处于蓬勃发展的时期。李华,一位在电子行业摸爬滚打多年的工程师,决定创立自己的公司——华宇创,专注于智能电子设备的研发和生产。创业初期,华宇创面临着资金短缺、技术瓶颈等诸多挑战。然而,李华凭借对技术的热情和坚定的信念,带领团队日夜兼程地研发新产品,最终成功推出了首款具有竞争力的智能手环,获得了市场的初步认可。

Dytran Instruments Inc公司的发展小趣事

2022年5月,英国思百吉集团(Spectris)以5.4亿美元的价格收购了Dytran。这次收购是思百吉集团进一步扩大其在传感器领域的布局的重要举措。作为思百吉集团旗下的子公司,Dytran将继续保持其独立性和品牌特色,同时借助思百吉的全球资源和市场渠道,加速其业务发展和市场拓展。

在被收购后,Dytran与思百吉旗下的其他品牌进行了业务整合。通过共享研发资源、优化供应链、拓展销售渠道等方式,Dytran实现了与思百吉旗下品牌的协同发展。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加全面和优质的服务。

Gaomi Xinghe Electronics公司的发展小趣事

背景:随着中国经济的快速发展和消费者对电子产品需求的不断增加,Galaxy公司敏锐地捕捉到这一市场机遇。

行动:在2003年初,Galaxy以缜密的市场调研为基础,全力部署进入大陆市场。同年6月,公司推出了以“影驰”命名的Geforce家族系列产品,迅速吸引了众多游戏发烧友和电子产品爱好者的关注。随后,公司又在多个城市设立了销售和服务网点,为消费者提供更加便捷的产品体验和服务。

成果:经过多年的深耕细作,Galaxy在大陆市场取得了显著成绩,品牌影响力不断增强,市场份额稳步提升。

宇阳科技(EYANG)公司的发展小趣事

随着公司业务的不断发展,宇阳科技在产能扩张和全球布局方面也取得了显著进展。公司在深圳、东莞、安徽等地建立了多个生产基地,引进了先进的生产线和检测设备,确保了产品的高品质和稳定供应。同时,宇阳科技还积极拓展海外市场,与全球多家知名企业建立了长期稳定的合作关系。

Everspin Technologies公司的发展小趣事

Everspin的MRAM和STT-MRAM产品因其独特的数据持久性和非易失性特性,在数据中心和云存储市场中得到了广泛应用。超过1.2亿个MRAM和STT-MRAM产品被部署在这些市场中,为数据中心和云存储提供了高性能、高效率、可靠的系统解决方案。Everspin的产品在这些领域中的成功应用,进一步巩固了其在电子行业中的地位。

问答坊 | AI 解惑

开关电源设计软件

开关电源设计软件…

查看全部问答>

用FPGA产生标准的m序列的问题分析

问题背景:         使用FPGA 产生一个2M速率的误码仪,误码仪格式X*9+X*5+1(X的9次方+X的5次方+1),满足国际电联的标准ITU V.52标准。国际电联标准英文如下:       4.1 511-bit pseudo-rand ...…

查看全部问答>

急求Qt4.5在Windows CE6.0下安装、开发应用程序问题

网上介绍的比较多的是Qt4.4在Windows CE5.0下安装,又没有哪位大侠试过用Qt4.5在Windows CE6.0下利用自己开发板的SDK进行安装并开发应用程序?希望得到详细过程说!!!…

查看全部问答>

电脑刚启动时候会显示bios信息,作个usb设备通过usb接口能读到这个启动画面,谁能实现?

电脑刚启动时候会显示bios信息,作个usb设备通过usb接口能读到这个启动画面,谁能实现?…

查看全部问答>

强烈建议,STM32出一个带STN/CSTN/TFT控制器的型号

强烈建议,STM32出一个带STN/CSTN/TFT控制器的型号不要太强,比S3C44B0的强些就好了…

查看全部问答>

TLC4502可以用什么IC代替?

本帖最后由 paulhyde 于 2014-9-15 09:09 编辑 各位高手们,如题,帮帮忙,有什么IC有满幅输出功能(单位增益带宽大于160KHz)?  …

查看全部问答>

用CCS5.1能生成hex或bin或txt(能通过编程器下载到MSP430f149中)

即能不能通过CCS5.1和编程器将程序下载到MSP430F149单片机中。我用过IAR(生成txt文件)和MSPFET(将txt文件下载到单片机中)这两个软件可以,不知道CCS5,1能不能生成txt文件(可通过MspFET和编程器下载到单片机中,不是通过仿真器),恳请高人帮助 ...…

查看全部问答>

Keil 4.6+Jlink v8环境下调试LPCXpresso LPC1200 REVB

昨天刚收到LPCXpressoLPC1200 REVB 开发板,就想着先了解一下,在NXP官网上下载的资料上都是关于用NXP官方提供编译器来开发的,我个人感觉官方给的编译器不如第三方编译器好用,比如开发TI的MSP430,我相信大多数人会用IAR,而不用CCS,当然开发TI ...…

查看全部问答>

非接触式水位传感器

有没有这样一种价钱便宜的传感器:往一个塑料桶里注水, 传感器能检测到水位。 传感器不能接触水,也不能看到水位。…

查看全部问答>

关于quartus 13 IP核调用过程中的一个问题!

起初在WIN7 32位系统下   编译运行正常的工程,换在WIN7 64位系统下   进行编译竟出错Error (10003): Can\'t open encrypted VHDL or Verilog HDL file \"F:/Installfile/Altera13/quartus/myProject/mod_demod/fir_compiler-l ...…

查看全部问答>