您的位置:首页 > 编程语言 > C语言/C++

05 关于AVR ATmega8 串口数据协议传输的奇偶校验码的一点想法

2017-03-16 19:53 232 查看
    在我们本科甚至在刚刚参加工作的时候(例如博主),写串口通信基本都是一位开始一位结束八位数据位没有奇偶校验位,那么这样的好处是方便,的确很方便,但是对于数据传输的隐蔽性和封装的保护就没有那么好的效果了。今天博主初步的探究下在程序中加入奇偶校验位的使用和通信方式。

对于一帧数据的传输,如果以我博客第4张的说法,就是一帧数据有4位有效数据位,剩下的两位用来奇偶校验(因为使用16位编码),将高八位存储在第五位。低八位存储在第六位。

这个校验的基本方式和想法是,在各种主流的单片机都有一个奇偶校验的函数表,通过该表可以很简单的调用使用奇偶校验功能并且将校验码进行赋值给最后两位,那么校验对比的过程就是,PC机发送一个帧的数据,格式是四位有效数据位和两位奇偶校验位 XX XX XX XX XX XX,发送给单片机后,单片机会在收数据的中断函数中进行判断和校验,如果数据无误则可以通过发送信号线将信号发送给PC机。

   下面说一下AVR单片机烧写的一些小陷阱,博主在AVR开发的下载软件使用的是AVR_FIGHTER,这个烧写软件有比较有趣的地方,就是在下图中的界面。

首先需要装载FLASH 装载EEPROM 然后可以尝试读取FLASH EEPROM等。

有没有成功接入硬件设备需要进行读取的操作,在这里我们需要在芯片特征字和熔丝位进行读取,在博主手中的ATmega8中的熔丝低位是BF 熔丝高位是D9

然后烧写程序的时候要记得勾选应该选择的选项,像如图中的选项基本要勾选,这样才不会导致烧写失败。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息