1. 进入mysql:mysql -u root -p

2. 编译包含“mysql.h”头文件的程序时出现undefined reference to xxx,
解决办法:在命令行最后加上`mysql_config --cflags --libs`
注意不是单引号,而是“ ` ”。

3. 在用gcc对多个源文件进行编译时,出现“multiple definition of xxx”的错误,
注意检查代码中声明的全局变量,一定要加上static关键字。

4. 编译时出现“ redefinition of 'struct sigaction' ”的错误,
注意代码中的头文件是否既包含了“signal.h”,又包含了“bits/sigaction.h”,
如果是的,要去掉后者。

5. 串口编程中的注意:
UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),即一种设备,完成串行数据和并行数据间的转换。RS232/RS485定义的是电气特性,影响了数据在线路上的传输过程。
两者之间的关系:RS232和RS485要通过UART的转换才能被CPU访问。即只要控制了UART就可以控制串口的传输方式。所谓的串口编程实质上是对UART编程,所以RS232/RS485对程序员是透明的。
RS232实现的是全双工,RS485则是半双工,编程时涉及到接收状态和发送状态的切换。

6. 继电器相关:
接线口:NO-Normal Open-常开触点(未通电时断开),NC-Normal Close-常闭触点(未通电时导通)


7. Win10(64位)下面提示:运行时错误339,“xxx.ocx”或相关组件丢失

解决方法:在C:\Windows\SysWOW64中以管理员身份打开cmd.exe,

输入:regsuv32 %windir%\SysWOW64\xxx.ocx(注意,一定要以管理员身份运行)


8.温湿度传感器疑似失灵,无法读取温度湿度参数

后来发现是导线接触不良引起的,用剥线钳剪去前面一段线头,再次运行程序发现获取温湿度恢复正常。


~~~~~~~~~~~~~~~~~~~~~~~~~~~

尚未解决的问题:

9. 在本地linux-gcc环境下编译出来的CRC16和checksum的计算结果跟在arm-none-linux-gnueabi-gcc环境下编译出来的不同


具体问题,我会在下个月专门开一篇博客进行讨论。

临时解决办法:把报文生成和处理的程序放在服务器上,生成好之后用socket发给开发板直接执行




10. 运行时出错:double free or corruption (!prev)


我检查过自己的所有代码,并没有出现多重释放相关的语句。具体问题还得在之后进行debug


~~~~~~~~~~~~~~~~~~~~~~~~~~~

PS:

项目的阶段验收总算是通过了,整个三月份没有一天晚上是睡好觉的,不是失眠,就是早上突然惊醒。满脑子里都是各种各样的问题——总体架构上的,嵌入式细节上的……一大堆……还要担心组内其他人的进度,能不能达到验收标准……总之是操碎了心。

不过就算是这样,还是度过了难关,算是有惊无险吧?我最想感谢的还是每天晚上能听我发牢骚的你。

下一阶段的开发任务会更加艰难,更加紧张。不过有你在,再大的困难我也要去克服。

このまま二人でこの理想的な未来がきっと見えるはず