使用GD E230Kxxx系列芯片进行开发遇到的一些问题
使用到的点,包括:ADC DMA NVIC IIC FMC(FLASH)
ADC规则组采样 循环执行,利用DMA进行读取数据,并且通过iic以中断的方式发送
踩到的坑:
ADC配置时连续模式,是对单个通道进行连续。扫描模式可以对多个通道进行采样。它们使用同一个函数进行配置不同的寄存器。
在配置的时候要调用同一个库函数,然后分别配置扫描模式以及连续模式,才能正常工作!
用户手册有提到!
DMA和ADC的顺序问题。先开启ADC会导致数据已经开始但是DMA还没有准备好。所以如果DMA在ADC以后开就会数据错位!
使用FMC库去操作flash的时候,片擦除功能会影响DMA读取ADC的采样值,也会导致数据错位。所以开始擦除之前应该关闭adc和dma。好像是因为擦除过程会占用总线
IIC这里被用作从机,需要配置中断处理函数,开启事件中断。
IIC犯错:
- 在处理iic错误中断函数的时候,将中断给关闭了, 就导致之后进不去中断。
- 配置匹配到从机地址之后,ADDSEND标志应该清除,然后处理收发中断标志!之后应该再去处理一下停止位,停止位需要重新enable(iic)才能软件清除!不然会卡死在中断
总结:遇到问题,用debug调试,一定要去参考对应的用户手册!!!!!!