MFD制作笔记
# 晶振选择
好像要选内部晶振的话, 默认就是, 不用选择
# 内存映射文件错误
CUBE生成的STM32G030C8Tx_FLASH.ld有问题, 编译不过, 修改里面的一些内容就可以了
```
56:
-_estack = ORIGIN() + LENGTH(); /* end of RAM */
+_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */
146:
- } > AT> FLASH
+ } > RAM AT> FLASH
163:
- } >
+ } >RAM
174:
- } >
+ } >RAM
```
后来更新了stm32cube就可以了
# 开机不上电
之前开机ldo可以到3.3v, 后来不行了, 找了一下原因好像是pmos的g脚电压拉得不够低, 把下拉由10k换成1k, 还是不行, 结果是因为PWR脚默认拉低, 一上电就掉电, 一掉电就拉高, 如此反复...
# adc调试
adc多通道需要开启扫描模式, 扫描模式选项下面要开启4个通道才允许开启扫描模式
rf检测功能失效, 看了一下是低电平时能, 但是效果不太行, 后续优化
# pwm 频率计算
主频 / PSC / ARR, 单位Hz, 我以为是kHz, 导致4Hz用起来不正常
我把ARR设置成99, 这样直接传0~100就可以换算成占空比
电机4kHz就差不多够了, 蜂鸣器要8k左右, 但是他们是同个TIM, 不能分开设置频率, 除非换分开, 或者把电机直接高电平启动
蜂鸣器通过调节PSC来调节声音频率
# ang spi 设置
发送和接受函数还没研究, 直接用duke那套模板, 有空再研究一下
https://www.st.com/resource/en/datasheet/lis2dh12.pdf
https://i-blog.csdnimg.cn/blog_migrate/2e7b39c9867fab3f450cb881db1e539a.png#pic_center
根据上面两个链接的结合, stm32设置, 设置为CPOL = High, CPHA = 1
# oled 不生效
排查硬件, 3 5 27 28 脚的电容配错了, 然后改完还是不行, 排查各个脚有没有虚焊, 发现都OK
软件排查, 把spi先换成例程里的gpio模拟, 还是不行
结果是 10 11 12 脚的原因, 我认为自己的spi是3脚的, 按照3脚的原理图配置, 结果例程里的是按照4脚spi配, 我照抄就可以了
评论
发表评论