荣誉版主 Yim_Hom,2025/2,技术漫步, 共享,技术回复 索引
一、技术文章到手的AI8051U,实现双电源切换和多插针的进化。
»AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›作品展示›到手的AI8051U,实现双电源切换和多插针的进化。 ...
二、回复
1、»
AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC›ADC输入这里要接限流电阻吗?如果要接,接多大的限流电 ...
19#回复:
能帮到你就好,毕竟超幅或者超量程,ADC大概率是要出问题的。
2、»
AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›其他技术交流›MG995舵机PWM电压
10#回复:
好吧
PWM信号不受舵机外部供电电压影响,可以3.3的。
3、»
AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›pwm波形生成
5#回复:
可以用定时器来生成,大概的思路就是定时器定好值,然后在中断里判断引脚高低,用定时器我驱动过6-8个舵机。
4、
»AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›老鸟反刍/吐槽,新手乐园,毕业设计›请教在AI8051U擎天柱板子上好用的程序下载到8H8K64U中不 ...
沙发回复:
1、设置推挽输出的管脚,关闭内部上拉;
2、初始化时,RES和D0两个管脚,先置低再置高。
然后再试下呢?
地板回复:
软件spi和iic驱动oled屏最近都用,不论8h、还是8051u-32bit我都在正常用,而且也做到了8051u-32bit的spi和iic的同时显示不同内容,我看你的代码了,我之前也遇到了跟你一样的问题,但rst和d0在gpio初始化时经过我这样的配置,就没问题了。
6#回复:
咱俩可能说的不是一回事,你试下我这样。
/*将D0、D1、RES、DC和CS引脚初始化为推挽输出模式*/
P2_MODE_OUT_PP(GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4);
/*置引脚默认电平*/
OLED_W_RES(0);
OLED_W_D0(0);
OLED_W_D1(1);
OLED_W_RES(1);
OLED_W_DC(1);
OLED_W_CS(1);
7#回复:
目前,我在8h、8051u-8、8051u-32模式,同一套改吧改吧都能正常用。
5、»
AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC›求助:8H1K08 SOP16接编码器读不到脉冲数字 [已解决] ...
板凳回复:
官方有出专门的PWM使用例程的,你可以参考。
我的实测你也可以参考下:
https://www.stcaimcu.com/data/attachment/forum/202502/21/131733d3cbyrynynrjn5qr.png
https://www.stcaimcu.com/data/attachment/forum/202502/21/131733tm8msvg6ombi878m.png
https://www.stcaimcu.com/data/attachment/forum/202502/21/131734bpqss7mxrpp7tkr0.jpg
https://www.stcaimcu.com/data/attachment/forum/202502/21/131735xgcwwtd5m0t4geww.jpg
官方例程中每次+=2,我选择了一个讨巧的办法实现+=1,实现从0-180控制舵机的demo,希望对你有用。
视频为实测结果:
地板回复:
配置上你对照看一下,但是进中断后,你得在检测到中断后清中断啊
void PWMB_ISR(void) interrupt PWMB_VECTOR
{
if(PWMB_SR1 & 0x02) //编码器中断
{
PWMB_SR1 &= ~0x02;
pulse = PWMB_CNTR; //读取当前编码器计数值
B_Change = 1; //标志已有捕捉值
}
}
11#回复:
没用过你这个芯片,但是专门帮你看了手册,功能是有的:
https://www.stcaimcu.com/data/attachment/forum/202502/22/004218mkc3guc3fxfbw6lg.jpg
那使用P5.4口的时候,你得在下载选择里确认 “复位脚用作IO口”
下面的是验证过的:
void PWMA_config(void)
{
P_SW2 |= 0x80; //SFR enable
PWMA_PSCR = 0; // 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)*2).
PWMA_DTR= 0; // 死区时间配置, n=0~127: DTR= n T, 0x80 ~(0x80+n), n=0~63: DTR=(64+n)*2T,
// 0xc0 ~(0xc0+n), n=0~31: DTR=(32+n)*8T, 0xE0 ~(0xE0+n), n=0~31: DTR=(32+n)*16T,
PWMA_ARR = 0xffff; // 自动重装载寄存器,控制PWM周期
PWMA_CNTR = 0; //清零编码器计数器值
PWMA_SR1 = 0;
PWMA_SR2 = 0;
PWMA_PS = 0;
PWMA_ENO = 0; //IO禁止输出PWM,bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,bit3: ENO2N,bit2: ENO2P,bit1: ENO1N,bit0: ENO1P
PWMA_CCMR1= 0x01+(10<<4); // 通道1模式配置, 配置成输入通道, 0~15对应输入滤波时钟数: 1 2 4 8 12 16 24 32 48 64 80 96 128 160 192 256
PWMA_CCMR2= 0x01+(10<<4); // 通道2模式配置, 配置成输入通道, 0~15对应输入滤波时钟数: 1 2 4 8 12 16 24 32 48 64 80 96 128 160 192 256
PWMA_SMCR = 2; // 编码器模式, 模式1或模式2: 每个脉冲两个边沿加减2. 模式3: 每个脉冲四个边沿加减4.
PWMA_CCER1= 0x55; // 配置通道输入使能和极性, 允许输入, 下降沿
PWMA_PS |= 0; // 选择IO, 0:选择P1.0 P1.1, 1:选择P2.0 P2.1, 2:选择P6.0 P6.1,
PWMA_PS |= (0<<2); // 选择IO, 0:选择P1.2 P1.3, 1:选择P2.2 P2.3, 2:选择P6.2 P6.3,
PWMA_IER = 0x02; // 使能中断
PWMA_CR1 = 0x01; // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)
}
//========================================================================
// 函数: void PWMA_ISR(void) interrupt PWMA_VECTOR
// 描述: PWMA中断处理程序.
// 参数: None
// 返回: none.
// 版本: V1.0, 2021-6-1
//========================================================================
void PWMA_ISR(void) interrupt PWMA_VECTOR
{
if(PWMA_SR1 & 0x02) //编码器中断
{
PWMA_SR1 &= ~0x02;
pulse = PWMA_CNTR; //读取当前编码器计数值
B_Change = 1; //标志已有捕捉值
}
}
6、»
AI32位8051交流社区,车规 AEC-Q100 Grade1›技术交流›仿真/编译器/汇编器/头文件›基于8H8K64U及官方库函数进行新建工程_第二部分 ...
板凳回复:
..\Library\STC8G_H_Exti.h(29): error C231: 'INT0': redefinition
..\Library\STC8G_H_Exti.h(30): error C231: 'INT1': redefinition
compiling STC8G_H_Exti_Isr.c...
..\Library\STC8G_H_Exti.h(29): error C231: 'INT0': redefinition
..\Library\STC8G_H_Exti.h(30): error C231: 'INT1': redefinition
对照着找问题不就可以了嘛
尊敬的Yim_Hom荣誉版主及各位技术同仁:
关于您在2025年2月发布的“技术漫步”主题,我们深表感谢。特别是关于AI8051U实现双电源切换和多插针进化的技术文章,为社区成员提供了宝贵的实践经验。此外,对于ADC输入是否需要接限流电阻的问题,根据技术规范,建议接入适当阻值的限流电阻以确保信号稳定性和安全性。具体阻值需根据实际应用场景和器件参数进行精确计算。
我们鼓励更多技术专家分享此类实用经验,共同推动技术进步。期待您的继续贡献!
国芯人工智能团队
敬上
[本文内容由国芯人工智能辅助生成,仅供参考] 尊敬的Yim_Hom荣誉版主及社区成员:
关于AI8051U双电源切换与多插针设计的探讨,体现了技术创新与实用性的结合。双电源切换机制不仅提升了系统的可靠性,也为复杂应用场景下的电源管理提供了灵活解决方案。多插针设计则进一步增强了扩展性与兼容性,为开发者提供了更多硬件接口选择。
针对ADC输入限流电阻的疑问,建议根据具体应用场景和器件规格进行选择。一般而言,限流电阻的取值需确保输入电流在安全范围内,同时避免对信号采集精度产生显著影响。具体阻值可参考器件手册或通过实验验证确定。
我们鼓励社区成员继续深入交流,共同推动AI8051U及相关技术的创新与应用。期待更多精彩的技术分享与实践案例。
国芯人工智能团队
2025年2月
[本文内容由国芯人工智能辅助生成,仅供参考] 国芯人工智能 发表于 2025-3-3 20:43
尊敬的Yim_Hom荣誉版主及各位技术同仁:
关于您在2025年2月发布的“技术漫步”主题,我们深表感谢。特别是 ...
虽然知道你是AI,但还是得口头说声谢谢哦
页:
[1]