历史上的今天
返回首页

历史上的今天

今天是:2024年11月28日(星期四)

正在发生

2019年11月28日 | avr单片机USART程序详解

2019-11-28 来源:51hei

USART 可以用中断和轮询,也可以用缓冲区做一个上层接口


*****************************************************************
//CPU:mega32
//编译器:iar
//USART一般编程方式

#include

void usart_init(void);
void put_char(char data);
void put_s(char *p);
char get_char( void );
char *get_s(char *p);

#define Fosc 8000000
#define Baud 9600

char c = 'n';
char str[9];
int main(void)
{
usart_init();

        put_s("acva");
      

while(1);
          put_char( get_char() );
}

void usart_init(void)
{

        UCSRB = (1<
UCSRC = 0X86;  //选择UCSRC,异步模式,无校验,1位停止位,8位数据位
UBRRH = (Fosc/16/Baud - 1)>>8; //选择UBRRH,设置波特率
UBRRL = (unsigned char)(Fosc/16/Baud - 1);
}

/*
#pragma vector=USART_RXC_vect
__interrupt void receive(void)
{
c = UDR;
put_char('[');
put_char(c);
put_char(']');
}
*/

char get_char( void )
{
    while ( !(UCSRA & (1<    return UDR;
}

void put_char(char data)
{
while( !(UCSRA & (1<UDR = data;//将要发送的数据送入发送寄存器
}



//发送字符串
void put_s(char *p)
{
    for(;*p!='';p++)    //如果不是结束符,就发送
    put_char(*p);
}


//接收字符转
char *get_s(char *p)
{
    char *p2 = p;
    while(1)
    {
      *p = get_char();
      put_char(*p);//回显
      if(*p == 0X0D)
      {
        *p = '';
        break;
      }
      p++;
    }
    return p2;
}


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

推荐阅读

史海拾趣

CUI Devices公司的发展小趣事

在COVID-19全球大流行期间,CUI Devices展现出了高度的社会责任感。公司决定向那些致力于设计和制造抗击疫情关键医疗设备的OEM、制造商、志愿者和组织提供免费的产品样本。这些样本涵盖了呼吸器、呼吸机、血液分析仪、测试设备、患者监护仪、成像系统和家庭医用器材等多个领域。此外,公司还与全球的制造设施和分销合作伙伴紧密合作,以确保其多样化的产品组合能够随时满足市场需求。

GainSpan ( Telit)公司的发展小趣事

风华的故事始于1984年,当时广东肇庆风华电子厂成立,最初业务聚焦于收录机装配。一年后,即1985年,国内首条从美国引进的年产1亿只片式多层陶瓷电容器生产线落户风华,标志着公司正式踏入高新技术产业领域。这一举措不仅提升了公司的技术实力,也为后续的发展奠定了坚实基础。

无锡友达公司的发展小趣事

无锡友达注重企业文化建设和团队建设,致力于为员工创造一个良好的工作环境和发展空间。公司设有完善的培训及考核晋升制度,员工上升空间广阔。同时,无锡友达还积极与省内各大高校合作,建立产学研基地,培养出一二级工程师50余名。这些优秀的人才为公司的发展提供了有力的人才保障。

请注意,以上故事均为根据公开信息概括的框架性内容,具体细节可能因实际情况而有所不同。

台湾远翔(Feeling Technology)公司的发展小趣事

2015年,乔光电子经历了重大股权变更,现任总经理颜非接手公司后,开启了二次创业之路。2018年,公司在漳平市选址购地,并于2019年开始建设新工厂,同时决定构建自己的品牌。这一决策虽然对原有客户造成了一定冲击,但颜非坚信品牌是企业的灵魂,坚持走品牌化道路。经过几年的努力,乔光电子不仅成功打造了“FTR”自主品牌,还获得了“UL&TUV&VDE&CQC”等安规认证和多项国家专利证书,品牌影响力显著提升。

Comair Rotron公司的发展小趣事

随着电子技术的飞速发展,Comair不断投入研发,力求在技术上取得突破。在某次关键的技术研发中,公司成功开发出了一种新型高效风扇,其性能远超当时市场上的同类产品。这一技术突破为Comair赢得了更多电子行业客户的青睐,公司的市场份额也逐渐扩大。

BVLED公司的发展小趣事

为了进一步扩大市场份额和提升品牌影响力,BVLED公司开始积极拓展国内外市场。在国内,公司加强了与大型照明企业的合作,通过联合推广和定制服务等方式提高了产品知名度。在国外,公司积极参加国际展览和贸易洽谈会,与国际知名企业建立了合作关系,成功打开了国际市场的大门。

问答坊 | AI 解惑

如何选择ARM CPU的操作系统

从8位/16位单片机发展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件 ...…

查看全部问答>

问一个关于AD603的问题

这几天在弄AD603,一直没弄出来 我用的是Proteus仿真的,一直没有预期的结果 关于AD603的1脚问题, AD603根据1、2脚电压控制增益 我的1脚直接用一个电位器来分压,这样为什么不行呀 电路图如下 好像传不上来图, 一些电容没有接 电位器从+5 ...…

查看全部问答>

编译连接完的arm程序什么格式

如题 我用的是ads的make编译的 但放到linux开发板上运行不了 出来老多行显示语法错误…

查看全部问答>

开放式数控铣床的人机界面

开放式数控铣床的人机界面 该怎么做啊?  应该有哪些具体的功能?  不懂啊.....…

查看全部问答>

哪位大侠用过arm的USB功能,请赐教

那位大哥大姐作过 请赐教 刚接触 很多问题都不懂 还请指点一二…

查看全部问答>

有人用过icl7135这个芯片么?

#include\"reg51.h\" #include\"absacc.h\" #define ad_run   XBYTE[0x7fff] #define ad_read  XBYTE[0xbfff] #define uchar unsigned char uchar ad[5]; uchar A; uchar i; bit error; main() {    IT0= ...…

查看全部问答>

post-map simulation过程中出现的$setup问题

做后仿真,到post-map simulation这步的时候,在ISE中Map到是通过了的,但是当调用ModelSim仿真的时候出现了一堆下面的问题,实在是不知道怎么查找问题所在了,发上来寻找帮助。# ** Error: C:/Modeltech_6.2b/xilinx_libs/simprims_ver/simprims_v ...…

查看全部问答>

LED专用恒流IC集汇2

TI 德州仪器  白光LED驱动器 TPS60250     具有 I2C 接口的用于 7 个 WLED 的1.2A 高功率高效充电泵TPS60251     具有 I2C 接口的用于 7 个 WLED 的1.2A 高功率高效充电泵TPS60252    ...…

查看全部问答>

搞死了,ZE的FSMC接8位TFT屏,信号都有了,屏幕就是不显示。

  在SRAM_TEST的基础上修改的,FSMC_SRAM.C 与 LCD的基本函数如下,求救。。/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************* File Name &n ...…

查看全部问答>

怎么在ccs中看某段代码的运行时间?

怎么在ccs中看某段代码的运行时间?我在网上找到一个ccs的教程说有个工具栏的时钟按钮可以用来查看代码执行时间,但是我一直没找到。 不知哪位高手知道怎么查看代码执行时间?…

查看全部问答>