久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
16路舵機控制板pca9685的stm32驅動程序源碼
[打印本頁]
作者:
leapyy
時間:
2018-4-17 16:13
標題:
16路舵機控制板pca9685的stm32驅動程序源碼
最近要做個六足機器人,所以買了個舵機控制板,而商家給的是arduino的代碼,我用的是stm32,
自己就看了挺多文檔,一開始總是不行,
在網上請教了幾個大神,終于成功
寫出了pca9685的驅動代碼(測試成功)。
在這里分享給需要的人。
單片機源程序如下:
#include "pca9685.h"
#include "myiic.h"
#include "delay.h"
#include "math.h"
void pca_write1(u8 adr,u8 data)
{
IIC_Start();
IIC_Send_Byte(pca_adr1);
IIC_Wait_Ack();
IIC_Send_Byte(adr);
IIC_Wait_Ack();
IIC_Send_Byte(data);
IIC_Wait_Ack();
IIC_Stop();
}
u8 pca_read1(u8 adr)
{
u8 data;
IIC_Start();
IIC_Send_Byte(pca_adr1);
IIC_Wait_Ack();
IIC_Send_Byte(adr);
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(pca_adr1|0x01);
IIC_Wait_Ack();
data=IIC_Read_Byte(0);
IIC_Stop();
return data;
}
void pca_reset1(void)
{
IIC_Init();
pca_write1(pca_mode1,0x0);
}
void pca_setfreq1(float freq)
{
u8 prescale,oldmode,newmode;
double prescaleval;
freq *= 0.92;
prescaleval = 25000000;
prescaleval /= 4096;
prescaleval /= freq;
prescaleval -= 1;
prescale =floor(prescaleval + 0.5f);
oldmode = pca_read1(pca_mode1);
newmode = (oldmode&0x7F) | 0x10; // sleep
pca_write1(pca_mode1, newmode); // go to sleep
pca_write1(pca_pre, prescale); // set the prescaler
pca_write1(pca_mode1, oldmode);
delay_ms(2);
pca_write1(pca_mode1, oldmode | 0xa1);
}
void pca_setpwm1(u8 num, u32 on, u32 off)
{
pca_write1(LED0_ON_L+4*num,on);
pca_write1(LED0_ON_H+4*num,on>>8);
pca_write1(LED0_OFF_L+4*num,off);
pca_write1(LED0_OFF_H+4*num,off>>8);
}
void pca_write2(u8 adr,u8 data)
{
IIC_Start();
IIC_Send_Byte(pca_adr2);
IIC_Wait_Ack();
IIC_Send_Byte(adr);
IIC_Wait_Ack();
IIC_Send_Byte(data);
IIC_Wait_Ack();
IIC_Stop();
}
u8 pca_read2(u8 adr)
{
u8 data;
IIC_Start();
IIC_Send_Byte(pca_adr2);
IIC_Wait_Ack();
IIC_Send_Byte(adr);
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(pca_adr2|0x01);
IIC_Wait_Ack();
data=IIC_Read_Byte(0);
IIC_Stop();
return data;
}
void pca_reset2(void)
{
IIC_Init();
pca_write2(pca_mode1,0x0);
}
void pca_setfreq2(float freq)
{
u8 prescale,oldmode,newmode;
double prescaleval;
freq *= 0.92;
prescaleval = 25000000;
prescaleval /= 4096;
prescaleval /= freq;
prescaleval -= 1;
prescale =floor(prescaleval + 0.5f);
oldmode = pca_read2(pca_mode1);
newmode = (oldmode&0x7F) | 0x10; // sleep
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
pca9685.rar
(272.63 KB, 下載次數: 345)
2018-4-17 17:13 上傳
點擊文件名下載附件
pca9285驅動demo
下載積分: 黑幣 -5
作者:
1355965609
時間:
2018-4-23 22:49
樓主還在嗎,我下載了你的程序到我的單片機里面,連接了pca9685與舵機,可是舵機依然不轉動。。。。。我很急很急,有很多的問題想問你,請問你的聯系方式
作者:
wyp987
時間:
2018-4-26 14:05
我也很想請教
作者:
leapyy
時間:
2018-5-11 13:27
我這個控制的是兩塊板子的
作者:
leapyy
時間:
2018-5-11 13:29
1355965609 發表于 2018-4-23 22:49
樓主還在嗎,我下載了你的程序到我的單片機里面,連接了pca9685與舵機,可是舵機依然不轉動。。。。。我很 ...
我寫的是控制兩塊板子的
作者:
358811477
時間:
2018-5-24 11:34
樓主請問:
1. 你兩個驅動板的基地址是怎么焊接的?一個是0x80,另一個是0x82,請問是怎么焊接的?
2. void SetPWM(uint32_t num,uint32_t on,uint32_t off) 這個函數中,num是不是就是第n個舵機,on是開始角度,off是停止角度?
3. LED0_ON_L和LED0_OFF_L是什么意思?感激不盡啊!!!
能不能加樓主聯系方式
作者:
xode
時間:
2018-5-24 16:20
很棒,謝謝樓主分享
作者:
cqh757128
時間:
2018-6-12 09:29
謝謝分享
作者:
Vong
時間:
2018-6-12 17:37
謝謝分享
作者:
順子
時間:
2018-10-1 00:38
不錯,完全沒問題。。謝謝
作者:
順子
時間:
2018-10-1 00:48
請問樓主pca_setpwm(15,0,pwm_td); 第二個參數代表什么?謝謝
作者:
xuzongguo
時間:
2018-10-4 22:52
樓主啊,你的程序備注有點少啊,理解起來有點困難啊,不過還是謝謝了
作者:
zkt95
時間:
2018-10-11 22:20
謝謝分享
作者:
bzycxg
時間:
2018-10-26 17:20
怎么接線的啊,我的連上三個mg995,就動不了了????
作者:
plj213
時間:
2019-3-1 10:15
感謝樓主分享。。。。
作者:
PatrickStar
時間:
2019-4-5 19:25
感謝分享感謝分享
作者:
nagatoxu
時間:
2019-5-30 11:09
正好需要,謝謝樓主.
作者:
吳昊浪
時間:
2019-8-3 09:09
備注有點少
作者:
1206827801
時間:
2019-8-3 11:14
感覺挺不錯,不過我幣不足
作者:
半盞生
時間:
2019-10-9 00:03
整潔到一條注釋都沒有。。。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
九九综合
|
久久久久国产精品一区二区
|
亚洲精品区
|
日本在线观看网址
|
欧美在线综合
|
亚洲国产高清免费
|
激情在线视频
|
免费看黄色片
|
午夜视频在线免费观看
|
免费精品久久久久久中文字幕
|
国产成人精品一区二区三
|
国产精品视频网
|
久草综合在线
|
久久久精品日本
|
九九热在线免费观看
|
欧美偷偷操
|
精品欧美一区二区三区精品久久
|
久久久久久999
|
精品1区2区3区
|
欧美黄色绿像
|
亚洲色图婷婷
|
国产精品夜间视频香蕉
|
久久一二区
|
精品一区二区三区四区五区
|
日本中文在线视频
|
毛片大全
|
国产精品一二三区
|
91欧美
|
精品国产欧美在线
|
成人黄色av
|
中文字幕99
|
亚洲美女av网站
|
亚洲精品美女在线观看
|
一级电影免费看
|
手机在线观看
|
久久久久久免费毛片精品
|
国产免费一二三区
|
蜜桃一区二区三区
|
9999久久
|
欧美一区二区三区国产
|
免费高潮视频95在线观看网站
|