最近要准备期末考试好紧张啊,复习的闲暇继续去写咱们的OTTO。今天先讲一讲如何去系统的完成咱么的项目:
首先要学会多路硬件PWM的输出
调通USART1,保证可以高可靠的进行串口的收发数据
通过串口对每个舵机进行姿态调整并且记录实时的串口数据值,为之后的舞蹈动作的编写做准备(如果玩过双足的或者窄足以及舞蹈机器人的会有这种经历)
在记录完整的动作信息数据之后将完整的动作数据写进数组中,让程序去不断的调用这些动作数据就可以形成一段完整的舞蹈,当然需要在每个姿态的后面通过系统滴答定时器进行一定的延时操作,否则这个可爱的小机器就会有点群魔乱舞的感觉了。
说了这个多我们现在来说说 使用STM32CubeMX编写一个硬件PWM输出的小程序:
首先打开CubeMX,选择我们需要使用的stm32F030单片机
然后对晶振和调试方式进行选择,因为我们使用的是Nucleo板子所以这里选择高速的外部晶振和板载的STLink
因为本次使用的开发板的板载Stlink是带串口的,串口占用的是芯片的USART2,因此我们也要对USART进行完整的配置,首先将串口2打开,并且设置成全双工模式
最后我们来配置需要使用的PWM的定时器,因为我凸(艹皿艹 )可懒,我也不想去看数据手册就找了个完整的全功能定时器3类用,因为我们需要使用4个舵机,所以我们需要开启这个定时器的4个通道,并且将他们设置成“PWM Generation CHx”模式,这是PWM输出的模式
在配置完端口之后就要对时钟树进行配置,可以参照我的配置,时钟树的配置直接会影响到后续我们对定时器的操作所以要慎重!
然后就需要配置GPIO的详细操作PWM的端口的设置如下(这是其中的一个的配置,新版本对CubeMX的操作进行了修改,之前端口的详细配置应该是在配置完成时钟树之后新版本将其修改为在配置端口的第一个页面就需要对端口的详细功能进行配置)
最后将串口中断和定时器中断打开即可,最后生成代码即可