”蓝桥杯单片机设计与开发“比赛个人笔记

本文详细介绍了编程中需要注意的关键点,包括计数运算符的使用、函数参数匹配、定时器LED控制、EEPROM数据写入、IIC通信与中断处理、类型转换规则、DS1302和DS18B20设备操作以及串口通信细节。
摘要由CSDN通过智能技术生成

注意事项:

  1. 累加/递减计数使用++/--时,注意++/--在前与在后的区别。如: if(++Key_Slow_Down==20)Key_Slow_Down=0;与if(Key_Slow_Down++==20)Key_Slow_Down=0;的区别一定要分清
  2. 调用函数时要注意实参数据是数组类型/指针类型时,实参与形参数据类型必须一致
  3. 点亮指定LED应在定时器中实现,因为这样能够避免程序之间的相互影响对LED产生的干扰,出现不受控制的频闪;(人眼暂留效应大概是20ms)
  4. unsigned char 类型数据,要使用%u进行输出,%d是有符号输出整型,%u是无符号输出整型,%c是输出数值对应的字符,以免不必要的错误。
  5. 写数据的时候需要注意,EEPROM是先写到缓冲区,然后再“搬运”到掉电非易失区。所以这个过程需要一定的时间,AT24C02这个过程是不超过5ms!如果在这个时候去让它应答是没有响应的!所以,当我们在写多个字节时,写入一个字节之后,再写入下一个字节之前,必须等待EEPROM再次相应才可以。
  6. 定时器中断会打断IIC通信,这会导致数据传输不完整,以此要避免二者的冲突。
  7. 注意!(逻辑取反)与~(按位取反)的区别
  8. C语言中类型转换都是向下取整,不是四舍五入,要四舍五入可以使用格式化输出浮点型数据,如printf("%2.0f",3.5);结果就是为4;或者可以使用三目运算符(X是一个float型数据)X+0.5>(int)X? X+1:X ;
  9. DS1302配置WP(开启写保护)时(0x8e=0x80,切记不能写成0x8e=1);
  10. DS18B20中读取温度时,先读取的是低8位温度值,后读取的才是高8位
  11. 定时器开启中断允许位后,就必须要有中断函数,否则程序会因为找不到中断函数而奔溃。
  12. 字符串中的“\r\n”表示换行操作,串口中发送数据都是以字符的形式发送 ,串口接收的字符需要延时10ms。


如有不妥之处,还请指出,如有补充,洗耳恭听。此笔记仅供参考,如若对你有所帮助,点个赞加个关注呗谢谢,最后祝愿你旗开得胜,金榜题名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值