1.在Keil中跳转函数需要先编译2.勾选reset and run 但是还是需要手动reset去Debug的setting选项里的Pack选项卡,把enable的勾去掉试试3.delay是通过滴答定时器(system tick timer)中断来实现的,外部中断也是通过中断来实现的。同样是中断,但是有优先级的说法,外部中断优先级和滴答定时器中断优先级相同。
4.HIS RC 和LSI RC是芯片自带晶振源
5.中断频率=(APB2) timer clocks -1/ (Prescaler * Counter Period -1)占空比=Pulse / Counter Period //TIMn ->CCRn =50;
6.sprintf 返回的是文本长度 \r\n才是换行
7.宏定义可变参数,举例
#define size(...) strlen(__VA_ARGS__) //"..."中的内容会替换掉"__VA_ARGS__:
8.串口有三种传输模式 1.普通-阻塞式 2.DMA-非阻塞式 3.中断-非阻塞式9.如果使用串口DMA,也一定要打开串口中断
9.我明白了一点问题,在看arduino中u8g2的源码时, HWIIC传输数据只需要事先得到地址,就可以传输。但是HWSPI需要时钟频率,数据传输方式,还有传输模式。三个参数。
但是我怎么找也在HAL库中找到相关设置
但是单独发送1byte的数据也不需要设置这些,我想可以的原因是
如果只发1byte数据,时钟频率就不需要了
传输方式默认是正确的
传输模式未知,但是应该也是默认正确的
10.OLED12864屏幕太容易摔坏了,因为他边角是悬空的,摔了必坏,打点热熔胶,有效防摔_(:з」∠)_
11.stm32cube中的时钟设置的HSE总线不要乱设置,还是要根据开发板实际使用的值填
12.
BOOT1=x BOOT0=0从用户闪存启动,这是正常的工作模式。(用户使用)
BOOT1=0 BOOT0=1从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1从内置SRAM启动,这种模式可以用于调试。
13. 麻了,第一次启动定时器时会执行一次中断函数,如果中断里面有初始化的代码请注意
14.HAL库定时器中断必须以IT的方式启动
15. 不要 extern 在函数中的变量 ,最好是 extern 全局变量