历史上的今天
今天是:2024年10月15日(星期二)
2019年10月15日 | DMAVR-L的USART串口发送与接收数据示例程序
2019-10-15 来源:eefocus
//***********************************************************************
// 包含文件
//***********************************************************************
#include #include #define F_CPU 16000000 // 单片机主频为16MHz,用于延时子程序,熔丝位必须设置到外部高频晶振才行 #include #include #include #include #include "Config.h" //*********************************************************************** // 定义变量区 //*********************************************************************** uint tx_count=200,tx_flag=0xff; static uchar A1,A2,A3; uchar usart_rx_data=0xff; //*********************************************************************** // IO端口初始化 //*********************************************************************** void system_init() { LED = 0xFF; //数据口为输出 LEDDDR=0xFF; //设置为输出 } //************************************************************************* // 将收到的串口数据显示到LED发光二极管,可以根据自己的情况更改 //************************************************************************* void Display_Uart(uint Data_Rev) { LED = Data_Rev; } void usart_init() { UCSR0A=0x00; //单倍速模式 UCSR0B=0x98; //接收中断允许,发送结束和寄存器空中断关闭,采用查询发送模式 UCSR0C=(1< UBRR0H=baud_h; //写波特率的值 UBRR0L=baud_l; } //************************************************************************* // 数据处理函数 //************************************************************************* void data_do(uchar temp_d) { uchar A2t; A1=temp_d/100; //分出百,十,和个位 A2t=temp_d%100; A2=A2t/10; A3=A2t%10; } //************************************************************************* // 串口相关中断服务子程序 //************************************************************************* //数据发送结束中断向量 ISR(USART0_TX_vect) //中断服务程序 { delay_ms(10); //相关操作 } //数据接收结束中断向量 ISR(USART0_RX_vect) //中断服务程序 { usart_rx_data=UDR0; //将接收到的数据取出 Send_SingleChar(usart_rx_data); //接收到的数据再发回电脑,显示在串口调试助手上 } //数据寄存器空中断向量 void Send_SingleChar(uchar usart_tx_data) { while(!(UCSR0A&(1< UDR0=usart_tx_data; //写入发送数据 while(!(UCSR0A&(1< UCSR0A|=(1< } //************************************************************************* // 主程序 //************************************************************************* int main(void) { uchar i; system_init(); //系统初始化 usart_init(); //usart串口初始化配置 for(i=1;i<=200;i++) { Send_SingleChar(i); //发送01到200 } SREG|=0x80; //开启全局中断 while(1); }
史海拾趣
|
现在要做一个基于3G协议的数据采集卡,不知道从何下手,想高人请教一下。 如果是自己设计硬件电路,3G网络芯片该如何选择?如果是选择usb 接口的 3G上网卡是否要自己写通信协议的驱动?还是直接写USB的驱动就可以了呢?… 查看全部问答> |
|
由于在CE6下,AP的权限有限,很难看到物理地址和kernel地址空间的memory的状况。 上不来附件,提供url: http://www.armce.cn/bbs/thread-271-1-1.html… 查看全部问答> |
|
使用atmega128 移植ucos II 在I2C 程序,移植的io口模拟时序程序,但是I2C 的程序在单片机程序跑的好好的 一点问题都没有有 ,而且波形也对。都能够完全实现通讯。 当我原封的程序移植到ucos ii 里 就不行了 ,根本没有 ...… 查看全部问答> |
|
linux-2.6.23的核 make menuconfig 设置全为默认设置没有修改、 make 屏幕输出如下 ################################################################## /usr ...… 查看全部问答> |




