完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近发现在AVR串口中可以使用#include
但因为看不到这些函数的原型,我对这些函数有些小疑问。 我用CVAVR自动生成的模板里有这样一个函数 #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256 if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #endif #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used- #endif 它是定义了一个8位的缓冲区然后从缓冲区里取出相应的数据(通过接受中断把收到的数据存入缓冲区)。 那使用这个函数就必须开接受中断了。 那么printf和scanf的使用是不是也类似的开中断或者设置什么东西呢? 麻烦大神给我简单的讲讲printf和scanf的一些基本原理,例如是否也通过UDR寄存器发送和收数据。 好帮助我对串口通讯有更深的了解。 十分感谢~ |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5053 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7705 浏览 0 评论
2979 浏览 2 评论
3070 浏览 1 评论
9976 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-1 11:38 , Processed in 0.503458 second(s), Total 52, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号