当前位置: 首页 > news >正文

企业网站备案案例网站建设项目体会

企业网站备案案例,网站建设项目体会,建设部勘察设计网站,网站建设维护人员岗位08. 按键输入 按键原理图代码编写GPIO驱动代码按键驱动代码主函数 加上清除BSS段#xff0c;代码不运行 按键原理图 按键KEY0连接到了UART1_CTS上。默认情况下#xff0c;KEY0为高#xff0c;当按下KEY0后#xff0c;UART1_CTS为低电平 代码编写 在bsp下创建一个key和一个… 08. 按键输入 按键原理图代码编写GPIO驱动代码按键驱动代码主函数 加上清除BSS段代码不运行 按键原理图 按键KEY0连接到了UART1_CTS上。默认情况下KEY0为高当按下KEY0后UART1_CTS为低电平 代码编写 在bsp下创建一个key和一个gpio文件夹 设置UART1_CTS复用为GPIO1_IO88设置UART1_CTS的电气属性配置GPIO_IO08为输出模式读取按键值获取高低电平 GPIO驱动代码 bsp_gpio.h #pragma once #include imx6ul.h typedef enum _gpio_pin_direction {kGPIO_DigitalInpput 0U, // 输入kGPIO_DigitalOutput 1U, // 输出 } gpio_pin_direction_t;typedef struct _gpio_pin_config {gpio_pin_direction_t direction; // GPIO方向输入还是输出uint8_t outputLogic; // 如果是输出的话默认输出电平 } gpio_pin_config_t;void gpio_init(GPIO_Type *base, int pin, gpio_pin_config_t *config); int gpio_pinread(GPIO_Type *base, int pin); void gpio_pinwrite(GPIO_Type *base, int pin, int value);bsp_gpio.c #include bsp_gpio.h void gpio_init(GPIO_Type *base, int pin, gpio_pin_config_t *config) {if(config-direction kGPIO_DigitalInput) // 输入{base-GDIR ~(1 pin);}else // 输出{base-GDIR | 1 pin;gpio_pinwrite(base, pin, config-outputLogic); // 默认输出电平} }int gpio_pinread(GPIO_Type *base, int pin) {return (((base-DR) pin) 0x1); }// 指定GPIO输出高低电平 void gpio_pinwrite(GPIO_Type *base, int pin, int value) {if(value 0U){base-DR ~(1Upin); // 输出低电平}else{base-DR | (1Upin); // 输出高电平} }按键驱动代码 bsp_key.h #include imx6ul.h // 定义按键键值 enum keyvalue {KEY_NONE 0,KEY_VALUE, };void key_init(); int key_getvalue();bsp_key.c void key_init() {gpio_pin_config_t key_config;IOMUXC_SetPinMux(IOMUXC_UART1_CTS_B_GPIO1_IO18, 0); // 复用为GPIO1_IO18IOMUXC_SetPinConfig(IOMUXC_UART1_CTS_B_GPIO1_IO18, 0xf080);key_config.direction kGPIO_DigitalInput;gpio_init(GPIO1, 18, key_config); }int key_getvalue() {int ret 0;static unsigned char release 1; // 按键松开if((release 1)(gpio_pinread(GPIO1, 18)0)) // key0按下{delay(10); release 0; // 标记按键按下if(gpio_pinread(GPIO1, 18)0)ret KEY0_VALUE;}else if(gpio_pinread(GPIO1, 18) 1){ret 0;release 1; // 标记按键释放}return ret; }主函数 #include bsp_clk.h #include bsp_delay.h #include bsp_led.h #include bsp_beep.h #include bsp_key.hint main() {int i 0;int keyvalue 0;unsigned char led_state OFF;unsigned char beep_state OFF;clk_enable();led_init();beep_init();key_init();while(1){keyvalue key_getvalue();if(keyvalue){switch(keyvalue){case KEY0_VALUE:beep_state !beep_state;beep_switch(beep_state);break;}}i;if(i50){i 0;led_state !led_state;led_switch(LED0, led_state);}delay(10);}return 0; }makefile文件 修改TARGET为keyINCDIRS和SRCDIRS中追加gpio和key的路径 加上清除BSS段代码不运行 __bss_start0x87800289。对于32位SOC来说一般是以4字节访问的因此会从0x87800288开始清除bss段但是该地址不属于bss段所以会出问题也就需要我们进行内存对齐即__bss_start0x8780028c。就是在__bss_start之前进行. ALIGN(4);然后再赋值
http://www.w-s-a.com/news/460287/

相关文章:

  • 常德企业网站建设广州站在哪里
  • 移动端网站建站视频教程网站如何做淘客
  • 注册网站会不会有风险网站建设实训致谢语
  • ssh框架做的家政服务网站需要做网站建设的公司
  • 众筹网站制作长春高端网站建设
  • 亳州网站网站建设wordpress汉化.po
  • 怎样给建设的网站提意见网红营销概念
  • 怎么知道一个网站是谁做的广告行业网
  • 上海app定制开发公司大城网站优化
  • 工厂 网站建设北京招聘网站设计师
  • 企业网站建设与网络营销的关系网页qq音乐在线听
  • 网站如何制作学校的做做代销的网站
  • 灌云网站建设维护常州市天宁区建设局网站
  • 广州中小企业网站建设网络营销平台的类型
  • 做非遗网站的原因wordpress ip 插件
  • 微信企业网站 源码下载wordpress 4.9.5 太卡
  • 湖北网站建设公司哪家好房地产最新政策调整
  • 重庆建设岗位培训网站今天重大新闻乌克兰
  • 流水线 东莞网站建设如何在网上销售产品
  • 哪些做图片赚钱的网站网站建设销售业绩任务
  • 建立网站 知乎如何做网站的图片滑动块
  • 国外做珠宝的网站有哪些滨湖区建设局官方网站
  • 关于中国幼教网站开发的经验中国建设银行晋中分行网站
  • 挪威网站后缀如何外贸网络推广
  • 外汇交易网站开发仟亿家设计软件好吗亿家
  • 专门教做甜品的网站郑州高新区建设环保局网站
  • 建站公司怎么获客网站建设全网营销
  • 黄石做网站的公司html免费网站模板
  • 做个商城网站怎么做便宜优酷视频网站源码
  • 网站侧边栏导航代码泰兴市住房和建设局网站