11.定义指针,一定要先初始化,否则意想不到的后果。
12.stm32 spi1和spi的通用的配置函数,spi1比spi2快一倍,因此可能影响传输距离和速度(测试于sd卡通信得知)
13.keil如果无法打断点,而且是全部不能打断点,可能是勾选了Download to Flash;(位置:Debug—》setting--》(debug选项卡右下角))
14.stm32在系统初始化之前最好加个延时,否则可能会出错(一般都是电源不稳定,复位电路不稳定造成的),这个延时只能是for循环延时,在系统做任何操作之前,此只是为解决办法,并不是根本原因。原则上讲,电路应该做一个RC复位电路,上电之前复位。
15. 如果出现编译不报错,但是就是有个红X提醒,可以把C99模式去掉编译下,再改回来就好了
16.KEIL MDK
17.STM32F0系列的对于stlink的线要求不能过长,可能驱动不起来,能检测到不代表就能用.
18.目前测试串口收发测试的时候,如果打个断点(keil中),到了断点暂停之后,如果串口在暂停状态下接收数据,那么继续运行之后将会死在串口接收中断里面,而且还查不到中断标识,传说是stm32的bug,在此标记(用的芯片stm32f030f4p6)
19.今天调试51的程序的时候,发现串口中断里面不要加入发送中断的判断和设置,否则,至少现在发现定时器和串口不能同时使用的问题.
20.同上,也是串口的问题,半个月之后发现新问题,因为这个串口协议时序要求比较强,一直会偶尔出现接收到错误的数据,后来在串口发送之前加上ES=0;发送完后ES=1;就ok了,意思就是发送过程中禁止串口中断;
21.在485总线上,任何时刻都只能有一个主机发送数据,而且其他485芯片必须处于接收状态,即使处于发送状态但是不发送数据也不行,否则会造成数据错误!
22.在进行判断语句的时候,c语言中==是比|(或),&(与)这些优先级高的,所以if(0==a&b)和if(0==(a&b))这两个是不一样的.
上一篇:JLINK flash timeout.Reset the tatget and try it again解
下一篇:初探STM32通用定时器
推荐阅读最新更新时间:2024-03-16 14:37