这个暑假一直跟着老师在做一些项目。
一直没有时间来做四轴。开学了总可以休息一下了。
最近刚好确定毕业设计的问题,刚好将四轴作为毕业设计,所以以后一定有时间来讲四轴做完的。
从现在开始将陆续发布调试的过程。
-------------------------------------------------------------------------------------------------------------------------------------------------
*************************5 调试1:添加5110显示屏*************************************
在调试的过程中,发现调试只能用串口来观察。特别是在飞控和遥控联合调试的时候会很不方便的。
刚好同学以前做了一批5110的底板,所以我就在遥控板上加入5110显示。
焊接好的效果图如下:
下面一个图片是5110底板的引脚:
这样的话,在调试的时候就可以很直观的观察现象。
引脚定义:
1.VCC 2.GND 3.SCE 4.RESET 5.D/C 6.SDIN 7.SCLK 8.LED+
SCE->PA15 RESET->PB3 D/C->PB4 SDIN->PB5 SCLK->PB8 LED+->PB9
程序我上传,如果要的话可以下载。
程序写的不怎么好,如果有好的建议麻烦告诉我一声。
**********************************************************************************
声明:部分程序是参考网友的,如有雷同纯属巧合。假如侵犯到您的合法权益,请告知我。我马上就删除。
*********************************************************************************
-------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------**************************调试2:ADC的调试******************************************
在调试ADC的时候,我一开始用的是查询,就是一个通道一个通道来读取,但是我想到在整版的时候,这样很费资源。还有数据也不好处理。所以现在就使用DMA来做。
话不多说,我直接把代码上传,希望大家提提意见。
*******************************************************************************
声明:部分程序是参考网友的,如有雷同纯属巧合。假如侵犯到您的合法权益,请告知我。我马上就删除。
*******************************************************************************
-------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------
**********************技术疑问5:串口数据乱码和滴答延时减小一半*************************
原来在调试遥控的时候,一直用5110来测试调试的过程结果。
在调试飞控的时候,发现按原来方法设置的串口,出来的数据是乱码的。在程序中设置的波特率是9600,但是用串口调试助手观察的时候要设置波特率位19200。。
最后发现飞控板上用的晶振是16M的,经过我对度娘的无情压榨,发现将STM32F10X.H里面的HSE_VALUE ((uint32_t) 8000000)改成HSE_VALUE ((uint32_t)16000000)。这样修改的话串口就不会出现这样的问题了哈。
但是下一个问题有出现了,就是你用滴答定时器的时候,你的延时比你用8M晶振的时候,减小了一半,所以你还要在RCC_Configuration()中将
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);改成
RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_9);经过这样的修改,这两个问题就解决了。
***********************************************************************************到此,这两个问题都解决了,但是我还存在疑问,在没有对PLL的时候分频的时候,串口也是对的,那STM32的系统时钟是多少呢?如果是不是72M的话,为什么串口的时钟好像就是72M,还有STM32技术手册中规定的芯片最大的时钟是72M。如果是72M的话,为什么滴答定时器的时钟会比原来的事8M的时候多一倍呢?滴答定时器的时钟提供者是HCLK,所以HCLK的时钟不是72M吗?我就想不通了,为什么滴答定时器的时钟会不对。
希望大牛给我解释一下哈。
**********************************************************************************
------------------------------------------------------------------------------------------------------------------------------------------------
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |