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

郑州网站建设代运营徐州公司网站建设

郑州网站建设代运营,徐州公司网站建设,成都网站制作推来客网站系统,wordpress权限问题1.通过操作Cortex-A7核#xff0c;串口输入相应的命令#xff0c;控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…1.通过操作Cortex-A7核串口输入相应的命令控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led3on,开饭led3灯点亮 6.例如在串口输入led3off,开饭led3灯熄灭 2.编程要求 1结构体封装 typedef struct{ char* cmd_arr; //命令行字符串 gpio_t* gpiox;//GPIO组号 unsigned int pin; //引脚编号 status_t status; //LED灯状态 void(*gpio_write_pin)(gpio_t* gpiox,unsigned int pin,status_t status); }cmd_t; 2结构体数组 方式1cmd_t cmd_arr[6] {{led1off,GPIOE,GPIO_PIN_10,GPIO_RESET_T},{},}; cmd_t cmd_arr[6] { [0] { .cmd_arr led1off, .gpiox GPIOE, .pin GPIO_PIN_10, .status GPIO_RESET_T, .gpio_write_pin hal_gpio_write, }, [1] {}, [2] {}, }; 3在串口输入一个字符串 1在串口输入一个字符串需要定义一个变量接收串口接收到的字符串 char* string uart_get_string(); 2串口中输入的字符串与结构体中每个元素中的cmd_arr变量进行比较 3如果比较成功代表查到输入的字符串 思考函数实现如何编写 cmd_t* find_command(const char* str) { //串口中输入的字符串与结构体中每个元素中的cmd_arr变量进行比较 //遍历比较自己编写strcmp比较的函数 return 0; //失败返回0 } 4思考main.c函数编写 cmd_t* cmd_arr; char* string uart_get_string(); cmd_arr find_command(string); if(cmd_arr 0) { 查找失败 }else { cmd_arr-gpio_write_pin(cmd_arr-gpiox,...........) } led.h #ifndef __TEST_H__ #define __TEST_H__#include stm32mp1xx_rcc.h #include stm32mp1xx_gpio.h #include stm32mp1xx_uart.h#define GPIO_PIN_8 8 #define GPIO_PIN_9 9 #define GPIO_PIN_10 10//GPIO章节初始化 void GPIO_INIT();//UART章节初始化 void UART_INIT();//RCC章节初始化 void RCC_INIT();//发送一个字符 void put_char(const char str);//发送一个字符串 void put_string(const char* str);//接收一个字符 char get_char();//接收一个字符串 char* get_string();//字符串比较函数 int my_strcmp(char *a,char *b);//封装灯泡亮灭枚举 typedef enum {reset_t,set_t, }status_t;//结构体封装 typedef struct{char* cmd_arr; gpio_t* gpiox;unsigned int pin; status_t status; void(*gpio_write_pin)(gpio_t* gpiox,unsigned int pin,status_t status); }cmd_t; cmd_t* find_command(char* str);//重写函数 void hall_gpio_write(gpio_t* gpiox,unsigned int pin,status_t state); #endif led.c #include test.h//GPIO章节初始化 void GPIO_INIT() {//设置3个灯的模式GPIOE-MODER(~(0x320));GPIOE-MODER|(0x120);GPIOF-MODER(~(0x320));GPIOF-MODER|(0x120);GPIOE-MODER(~(0x316));GPIOE-MODER|(0x116);//设置推挽输出GPIOE-OTYPER(~(0x110));GPIOF-OTYPER(~(0x110));GPIOE-OTYPER(~(0x18));//设置低速GPIOE-OSPEEDR(~(0x320));GPIOF-OSPEEDR(~(0x320));GPIOE-OSPEEDR(~(0x316));//不需要上拉GPIOE-PUPDR(~(0x320));GPIOF-PUPDR(~(0x320));GPIOE-PUPDR(~(0x316));/**********************************///设置GPIOB引脚输出为复用模式GPIOB-MODER(~(0x34));GPIOB-MODER|(0x24);//设置GPIOG引脚输出模式GPIOG-MODER(~(0x322));GPIOG-MODER|(0x222);//设置GPIOB功能复用模式GPIOB-AFRL(~(0x158));GPIOB-AFRL|(0x88);//设置GPIOG功能复用模式GPIOG-AFRH(~(0x612));GPIOG-AFRH|(0x612);}//UART章节初始化 void UART_INIT() {//设置宽度USART4-CR1(~(0x112));USART4-CR1(~(0x128));USART4-CR1(~(0x115));USART4-CR1(~(0x110));USART4-CR1|(0x13);USART4-CR1|(0x12);USART4-CR1|(0x1);USART4-CR2(~(0x312)); //3.设置一级分配USART4-PRESC(~(0x15));//4.USART_BRR设置串口波特率USART4-BRR0x22B;}//RCC章节初始化 void RCC_INIT() {//对GPIOE和GPIOG使能RCC-MP_AHB4ENSETR|(0x34); //对GPIOB使能RCC-MP_AHB4ENSETR|(0x11);//对GPIOG使能RCC-MP_AHB4ENSETR|(0x16);//对UART4使能RCC-MP_APB1ENSETR|(0x116);}//发送一个字符 void put_char(const char str) {while(!(USART4-ISR (0x1 7))); //2.将要发送的字符写到发送数据寄存器中 USART4-TDR str; //3.判断发送数据是否完成 ISR[6] while(!(USART4-ISR (0x16)));}//发送一个字符串 void put_string(const char* str) {//判断是否为\0,一个字符一个字符发送 for(int i0;str[i]!\0;i){put_char(str[i]); }put_char(\n);put_char(\r);}//接收一个字符 char get_char() {char ch; //1.判断接收数据寄存器是否有数据可读 ISR[5] while(!(USART4-ISR (0x15))); //2.将接收到的数据读出来 ch USART4-RDR; return ch; }char buf[50]{0};//接收一个字符串 char* get_string() {//for循环int i0;//当键盘的回车键\r按下之后字符串输入完成 for(i0;(buf[i]get_char())!\r;i){put_char(buf[i]);}//字符串补\0 buf[i] \0; put_char(\n);put_char(\r);return buf;}//字符串比较函数 int my_strcmp(char *a,char *b) {while(*a || *b){if(*a!*b){return *a-*b;}a;b;}return 0;}//结构体封装 cmd_t cmd_arr[6] {[0]{led1on ,GPIOE,GPIO_PIN_10,set_t,hall_gpio_write},[1]{led1off,GPIOE,GPIO_PIN_10,reset_t,hall_gpio_write},[2]{led2on ,GPIOF,GPIO_PIN_10,set_t,hall_gpio_write},[3]{led2off,GPIOF,GPIO_PIN_10,reset_t,hall_gpio_write},[4]{led3on ,GPIOE,GPIO_PIN_8 ,set_t,hall_gpio_write},[5]{led3off,GPIOE,GPIO_PIN_8 ,reset_t,hall_gpio_write} };cmd_t* find_command(char* str) {for(int i0; i6; i){if(my_strcmp(str,cmd_arr[i].cmd_arr)0){return cmd_arr[i];}}return 0; //失败返回0}//对GPIO引脚写控制灯光亮灭函数 void hall_gpio_write(gpio_t* gpiox,unsigned int pin,status_t state) {if(state set_t){gpiox-ODR |(0x1pin);}else if(state reset_t){gpiox-ODR (~(0x1pin)); } } main.c #include test.h extern void printf(const char *fmt, ...); void delay_ms(int ms) {int i,j;for(i 0; i ms;i)for (j 0; j 1800; j); } int main() {RCC_INIT();GPIO_INIT();UART_INIT();while(1){cmd_t* cmd_arr;char *string get_string();cmd_arr find_command(string);if(cmd_arr 0){put_string(error);}else{cmd_arr-gpio_write_pin(cmd_arr-gpiox,cmd_arr-pin,cmd_arr-status);}}return 0;} 测试结果
http://www.w-s-a.com/news/356567/

相关文章:

  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站
  • 网站漏洞扫描工具wampserver集成环境搭建了一个织梦cms网站
  • 如何在局域网上做网站宁波设计公司排行榜
  • 自己的电脑做网站服务器吗百度搜索风云榜总榜
  • 做化妆品的一些网站企业网站建设与营运计划书
  • 重庆速代网络科技seo整站优化服务教程
  • 成都比较好的装修设计公司seo3的空间构型
  • 开发商建设审批网站成都创意设计公司
  • 百度快照比网站上线时间早wordpress新建阅读量字段
  • 国家工程建设标准化协会网站网站开发工具有
  • 上海网站建设集中公关公司组织架构图
  • wordpress副标题的作用百度网站标题优化
  • 大连哪家公司做网站比较好wordpress 判断用户组
  • 网站空间1g多少钱东莞公司高端网站建设
  • 网站服务器出错是什么意思做餐饮酒店网站
  • 房地产网站建设策划方案网站建设教程简笔画
  • 3d室内设计软件wordpress本地优化加速版
  • 南京高新区规划建设局网站石家庄哪里做网站比较好
  • 免费培训课程网站优化的方式
  • 做网站要固定电话在家自己做网站
  • 招聘网站开发视频新手如何做网站维护
  • flash 网站欣赏国外做的比较好的网站有哪些
  • 推广一个网站需要什么官网首页设计