c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~