对基于NUC472开发板的机智云功能板进行编程

网友投稿 244 2022-11-27

对基于NUC472开发板的机智云功能板进行编程

1.小电机

图2 电机电路

电机与NUC472的连接关系为:

IA-PC11 IB-PC10

小电机的初始化函数为:

void MODER_init(void){GPIO_SetMode(PC, BIT11, GPIO_MODE_OUTPUT); // IAGPIO_SetMode(PC, BIT10, GPIO_MODE_OUTPUT); // IBPC10 = 0;PC11 = 0;}

使用如下高低电平输出语句即可使电机转动,互换高低电平即可实现反向转动。

PC11 = 1; //输出高电平 PC10 = 0; //输出低电平

2.小按键

利用板载的小按键,可进行相应功能的控制,其电路如图3所示。

图3 按键电路

按键与NUC472的连接关系为:

KEY1- PA10 KEY2- PA9

按键的初始化函数为:

void KEY_init(void)

{ // K1、K2GPIO_SetMode(PA, BIT10, GPIO_MODE_INPUT); // KEY1GPIO_SetMode(PA, BIT9, GPIO_MODE_INPUT); // KEY2}

K2键控制电机转动的语句如下:

PC10 = 0;if (PA9 != 1) // K2{ PC10 = 1; // MODOR}else{ PC10 = 0;}

3.红外感应

板载的红外感应器是用于避障控制的,其电路如图4所示。

图4 红外感应电路

IR_OUT与NUC472的连接关系为:

IR_OUT - PF9

IR_OUT的初始化函数为:

void IR_init(void) { GPIO_SetMode(PF, BIT9, GPIO_MODE_INPUT); // IR-OUT }

以IR控制电机正反转的语句如下:

if (PF9 != 1) { PC11 = 1; PC10 = 0; } else { PC11 = 0; PC10 = 1; }

4.RGB_LED

图5 RGB_LED接口电路

那使用P9813又有何特别之处呢?其主要用途在于,可以串行方式来传送控制信号,并起到控制RGB亮度的作用。而通常情况下,这是需要通过PWM来实现的。在信号传送过程中,是通过32个脉冲信号来把控制数据传递到P9813中,再由RGB引脚加以输出来控制RGB_LED。

P9813与NUC472的连接关系为:

A0-PE1 SCL- PD10 SDA-PD12

RGB_LED的初始化函数为:

void RGB_init(void){GPIO_SetMode(PD, BIT12, GPIO_MODE_OUTPUT); // SDAGPIO_SetMode(PD, BIT10, GPIO_MODE_OUTPUT); // SCLGPIO_SetMode(PE, BIT1, GPIO_MODE_OUTPUT); // A0PE1 = 0;}

RGB_LED的控制函数如下:

实现呼吸灯的程序为:

uint8_t i=0; RGB_init(); PE1 = 1; RGB_Write_Data(0x00,0x00,0x00); for (i=0;i《125;i++) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=125;i》0;i--) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=0;i《125;i++) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=125;i》0;i--) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); }

实现色彩环的程序如下:

while(1){ RGB_Write_Data(120,0x00,0x00); RGB_del(5); RGB_Write_Data(0x00,120,0x00); RGB_del(5); RGB_Write_Data(0x00,0x00,120); RGB_del(5); RGB_Write_Data(120,120,0x00); RGB_del(5); RGB_Write_Data(0x00,120,120); RGB_del(5); RGB_Write_Data(120,0x00,120); RGB_del(5); RGB_Write_Data(120,120,120); RGB_del(5); RGB_Write_Data(0x00,0x00,0x00); RGB_del(5); }

使用红外感应器作为感应提示器的语句如下:

if (PF9 != 1) // IR{ RGB_Write_Data(120,0x00,0x00); }else{ RGB_Write_Data(0x00,120,0x00); }

5.OLED接口

图8 OLED接口

LCD5110屏与NUC472的连接关系为:

CS---GND

D/C---PD0

SCLK--PD6

LED+--PD7

LCD5110各引脚输出高低电平的定义语句如下:

LCD5110的引脚配置函数如下:

初始化函数为:

void LCD_init(void){ SetLCD_RST_Low(); delay_1us(); SetLCD_RST_High(); delay_1us(); delay_1us(); LCD_write_CMD(0x21); LCD_write_CMD(0xc0); LCD_write_CMD(0x06); LCD_write_CMD(0x13); LCD_write_CMD(0x20); LCD_Clear(); LCD_write_CMD(0x0c);}

主函数为:

int main(void){ GPIO_Configuration(); PD7 = 1; LCD_Init(); LCD_Clear(); LCD_write_english_string(2,0,“NUC472 +”); LCD_write_hanzi(2,3,6); LCD_write_hanzi(14,3,7); LCD_write_hanzi(26,3,8); LCD_write_hanzi(38,3,9); LCD_write_hanzi(50,3,10); LCD_write_hanzi(62,3,11);}

其它驱动LCD110屏显示的函数基本无需变化,运行后的显示效果如图9所示。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大数据以及大数据技术都包括哪些内容
下一篇:通信工程师考试基本情况及经验分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~