二、大概了解了下硬件资源后,就要了解软硬件的桥梁—寄存器了
有同一个地址一样,但是写信和别人发给你的信封却有2个一样。使用时自动控制的。
接受完成置1
读取数据清0
UCSRB
RXCIE
接受中断允许
RXEN,TXEN设置时会改变时普通IO口,或者是当做复用口用,在发送数据时设置下,数据全部发送后才生效
RXB8,TXB8需要先读写出
UCSRC
URSEL
寄存器选择
写时需要设为1
存在共用寄存器
波特率寄存器:UBRRL
需要注意URSEL的设置 :0
读UBRRH,第一次是比特率的内容
使用时可以查速查表,直接用ICCAVR生成工具即可。
三,相关操作
1 初始化
TXC
把数据放入到发送缓冲器即可
2 注意下空中断
四一些总线标准
RS232 9针D型接口
需要使用电平转换电路
五.工业设计中的串口
这里如果大家看到了还是注意下比较好 ,网上写的不多的,我也是从工程实践和查找大量的参考书中总结的
设计思路是基于状态机,并自定义了协议,同时协议中使用了CRC校验,和简易的加密技术
思路是:主从方式,上位机发送数据包,下位机在中断中接受,接受数据时要一位位的确认,并不断进行切换,发送的位置状态,把初步确认的数据放到接受缓冲器里,等所有的数据接收好了,程序进入大循环了,就执行主程序中加入uart操作函数,这个函数首先判断主机发送的命令和设置是否接受完成,在完成的状态下进行校验正确性,校验后,根据主机命令,组装数据包和存贮主机的设置数据,并把需要发送的数据包或设置完成数据包放在需要发送的数据缓冲区,接着改变下此时的状态:为我组好了,准备发送数据了,接着触发中断,可以直接往串口发个数据即可,正常发送后,单片机会执行其他程序,等上位机接受到这个触发数据后,下位机会中断,中断程序会根据状态,一位位的发生缓冲区的数据,直到所有的数据发送完成,发送完成后还要置位到接受数据状态0。
我的环境是atmega128
初始化
uchar LED_Temp=0xFF;
uchar OUT_temp=0x04;
static uchar Uart_Status;
static uchar R_Data_Lenth;
uchar Tx_Buf[TxBufSize];
uchar Rx_Buf[RxBufSize];
uchar *P_Uart_Rx;
uchar *P_Uart_Tx;
uchar Rx_Count;
uchar Tx_Count;
void Uart_Init(void)
{
}
//
void Com_baudrate (unsigned int baudrate)
{
}
//
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
}
//函数说明:串口发送完成中断函数
#pragma interrupt_handler uart0_tx_isr:iv_USART0_TXC
void uart0_tx_isr(void)
{
}
//
void Uart_Process(void)
{
}
//函数说明:uart测试程序
void Uart_Test(uchar data)
{
}
//- 功能描述:串口发送字节的函数
//
//
void UART_Send_Byte(unsigned char mydata)
{
}
上一篇:AVR单片机中断模式的串口发送与接收
下一篇:AVR单片机ADC实验
推荐阅读最新更新时间:2024-03-16 15:17
设计资源 培训 开发板 精华推荐
- 【TI 培训】年度盘点:2019 TI 培训课程集锦,好评有礼!
- 下载有礼|是德科技:测试设备如何影响产品质量调研报告
- 【报名赢小米手环、膳魔师保温杯等好礼】罗德与施瓦茨HDMI 1.4b/2.1 接口测试
- 和我一起学习ESP32的micropython
- PI HiperPFS-4系列功率因数校正IC,了解产品特色,答题享好礼!
- 评论有礼:用混合信号示波器探索总线的秘密
- MSP430 多款开发工具优惠促销,总有一款会适合你!
- 瑞萨电子RL78/G14评估板DIY精彩上演!
- 【投票瓜分2500元红包】2022得捷电子创新设计大赛优秀作品人气奖由你来定!
- EEWorld有奖主题征文来了~现金奖励等你来拿!