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

做网站客户给不了素材win7 iis配置本地网站

做网站客户给不了素材,win7 iis配置本地网站,横岗网站建设多少钱,wordpress跳转内容页新建工程 寄存器方式 要命啊#xff0c;一看名字我就不想试。寄存器新建不得麻烦死。 哎算了为了学习原理#xff0c;干了。 我们尝试自己写一个寄存器的库函数来引用。 首先我们需要引用 st 官方启动文件 stmf4xx.s#xff0c;具体用途后面章节再展开讲解。然后我们自…新建工程 寄存器方式 要命啊一看名字我就不想试。寄存器新建不得麻烦死。 哎算了为了学习原理干了。 我们尝试自己写一个寄存器的库函数来引用。 首先我们需要引用 st 官方启动文件 stmf4xx.s具体用途后面章节再展开讲解。然后我们自己新建一个 stm32f4xx.h 文件来映射寄存器。不过只是把这个文件包含进项目编译会报错 .\Objects\led_reg.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f40xx.o).进入启动文件后可以看到这么一个函数 ; Reset handler Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT SystemInitIMPORT __mainLDR R0, SystemInitBLX R0LDR R0, __mainBX R0ENDPimport 的作用相当于 extern所以没有找到这个函数的定义需要我们自己去定义。这就是为什么简单引入了启动文件会报错。 而 __main 是当我们定义了 main() 函数后编译器会自动链接一些c语言库定义好的函数用于初始化堆栈并且调用我们的 main(). 注意如果想要生成 __main 函数必须勾选下面这一项。 野火你讲的是真好啊。我之前草草学了学 stm32 单片机用法比赛的时候自己想移植代码改了启动文件也不好使就是报错。原来是这个原因。 那么我们只需要定义这么一个函数哪怕内容是空都无所谓。 最终我们定义的初步项目框架如下 stm32f4xx.h内容为空有这么个东西就行。 main.c #include stm32f4xx.hint main(){while(1){} }void SystemInit(){}好了这个程序可以烧录到板子上的。烧录成功之后没有任何反应因为本来程序也没做什么哈哈但是这就是一个大进步了。 点灯——51单片机版 51单片机版就是引用 reg51.h 头文件在其中声明了各个引脚的地址。我们只需要直接给引脚赋值即可。 调用代码 #include reg51.h#ifdef 0 void main(){PA00xFE;while(1){} } #endif接下来我们需要定义 LED 灯的寄存器位置。阅读原理图如下 大致可以看出板子上的这个 RGB LED 通过三个引脚来控制 RGB 亮度。输出低电平则导通点亮。 具体输出方式是通过 ODR 进行输出。查找 stm32f4xx 中文参考手册可见 那么我们就要给 0x4002 1400 14 的地址赋值让 16 17 18 的位分别赋值为低电平. int main(){*(unsigned int *)(0x4002140014)~(16); while(1){} }然而这样也不亮。亮就怪了stm32 寄存器是需要先做初始化配置的。 点灯——stm32 版 首先我们要设置 GPIO 模式。 想点灯 输出高低电平是 01 通用输出模式。 *(unsigned int *)(0x400214000)~(3(6*2)); *(unsigned int *)(0x400214000)|(1(6*2)); 意思是先把 PF6 模式位置为00然后赋值为01通用输出。 配置完模式之后还需要配置时钟stm32 每个外设都需要配置时钟。 前面提到过 GPIO 是在 AHB1. 全部代码如下 #include stm32f4xx.hint main(){//RCC*(unsigned int *)(0x400238000x30)|(15); //Mode*(unsigned int *)(0x400214000)~(3(6*2)); *(unsigned int *)(0x400214000)|(1(6*2)); *(unsigned int *)(0x400214000x14)~(16); while(1){} }void SystemInit(){} 接下来我们把这几个地址值提取出来宏定义映射寄存器。 //stm32f4xx.h /* 用来存放寄存器映射相关的代码 */ #define RCC_AHB1_ENR *(unsigned int *)(0x400238000x30) #define GPIOF_MODER *(unsigned int *)(0x400214000) #define GPIOF_ODR *(unsigned int *)(0x400214000x14)//main.c #include stm32f4xx.hint main(){//RCCRCC_AHB1_ENR|(15); //ModeGPIOF_MODER~(3(6*2)); GPIOF_MODER|(1(6*2)); GPIOF_ODR~(16); while(1){} }void SystemInit(){}点灯——流水灯闪烁 利用软件延时实现 RGB 流水灯闪烁。很简单前面已经看了3个 LED 通道 PF678 了。 #include stm32f4xx.hvoid delay_ms(int time);int main(){//RCCRCC_AHB1_ENR|(15); //ModeGPIOF_MODER~(3(6*2)); GPIOF_MODER|(1(6*2)); GPIOF_MODER~(3(7*2)); GPIOF_MODER|(1(7*2)); GPIOF_MODER~(3(8*2)); GPIOF_MODER|(1(8*2)); while(1){GPIOF_ODR|(76);GPIOF_ODR~(16);delay_ms(1000);GPIOF_ODR|(76);GPIOF_ODR~(17); delay_ms(1000);GPIOF_ODR|(76);GPIOF_ODR~(18);delay_ms(1000);} }void SystemInit(){}//毫秒级的延时 void delay_ms(int time) { int i0; while(time--){i4000;while(i--) ; } }点灯——GPIO 具体功能框图对应 GPIO通用输入输出引脚。我们可以通过编程来输出或者读取数据。大部分 GPIO 是已经连接、定义好了一些功能比如上面尝试过的 PF6 LED有的引脚有多个功能支持重新映射。 STM32 GPIO 除了 adc 是 3.3v其他 GPIO 都是 5v 容忍。 GPIO 框图重点如下 先从输出开始看。最右侧的 IO 引脚是连接在芯片周围一圈的144个引脚之一。除了 IO 引脚此图中其他所有部分都是封装在芯片内部我们看不到的。 往左有两个保护二极管。当电压大于 5V电流会往上 VDD_FT 走。当电压为负电压电流会由 VSS 往 IO 引脚走。 上下拉电阻比武外接一个低电平工作的设备但是我们不希望一上电外设就工作可以设置上拉电阻稳定一段时间。 GPIO 输出的数据来源复位寄存器 BSRR或者 ODR 设置图中的3下路部分。复位寄存器高16位复位写1置0低16位置位写1置1置位优先级更高。 配置 GPIO 模式输入/输出选择哪一路通过前面用过的 MODER 配置。 输出模式图中输出控制部分配置端口输出类型寄存器 OTYPER比如推挽输出开漏输出。 推挽输出有直接驱动能力输出0就是低电平输出1就输出可以工作的高电平。原理是采用了一个放大的电路 输入INT为高电平时反向后 PMOS 导通输出高电平。输入为低电平时反向后 NMOS 导通输出低电平。我们可以用一个小电流去驱动出来一个大电流。 开漏输出自己本身没有输出高电平的手段。低电平可以接地高电平没有 PMOS 管是浮空状态。需要外接一个电阻。 stm32 输出 5V 电压的方法就是开漏输出外接电阻。通过接两个三极管的方式反向。 框图中的模拟部分输入输出则不用配置这些模式信息直接由外设接到保护二极管再接到输出引脚。 框图中的输入部分经过保护电压后还需要施密特触发器调整一下。比如原来电压的数值并非精确的0或 3.3V施密特触发器将高于 1.8V 的全部视作1低于的全部视作0后输入芯片。模拟部分则不需要经过施密特触发器。 因此配置 GPIO 输出的步骤如下 GPIO 功能通用输出、复用功能、模拟输入等 MODER输出推挽 or 开漏 OTYPER输出速度 OSPEEDR上下拉电阻是否需要开启 PUPDR具体输出内容 BSRR or ODR. 输入部分后面输入实验介绍~ 按整个流程重新串一遍代码如下其实和前面差不多就是重新按照流程串了一遍 /* 用来存放寄存器映射相关的代码 */ #define RCC_BASE (unsigned int *) 0x40023800 #define GPIOF_BASE (unsigned int *) 0x40021400#define RCC_AHB1ENR *(RCC_BASE0x30)#define GPIOF_MODER *(GPIOF_BASE0x00) #define GPIOF_OSPEEDR *(GPIOF_BASE0x08) #define GPIOF_PUPDR *(GPIOF_BASE0x0C) #define GPIOF_ODR *(GPIOF_BASE0x14) #define GPIOF_BSRR *(GPIOF_BASE0x18)//main.c #include stm32f4xx.hint main() {RCC_AHB1ENR | (15);GPIOF_MODER ~(3(6*2));GPIOF_MODER | (1(6*2));while (1){} }void SystemInit() { }烧录前记得勾选use MicroLib.
http://www.huolong8.cn/news/137972/

相关文章:

  • 做网站分几种斗门区建设局网站
  • 给网站做选题外包公司和劳务派遣
  • 聊城做网站价位网页制作软件 ad
  • 深圳建设厅官方网站如何进入微网站
  • 泰州专业做网站公司文件链接 win wordpress
  • 宁波网站制作维护小工程承包app
  • 免费搭建淘宝客网站网络技术网站
  • 网站建站图片asp.net网站本机访问慢
  • 工程建设监理网站多商户wordpress
  • 中山网站建设制作动画形式的h5在哪个网站做
  • 静态网站开发专注WordPress网站建设开发
  • 品牌网站的愿望清单怎么做漂亮的网站改版中 html代码
  • wap网站推荐百度怎么做网页
  • wordpress 调用评论seo推广怎么做视频教程
  • 怎么做网站的需求怎么做flash网站
  • asp美食网站源码个人备案 网站内容
  • 提供邯郸企业建网站营销培训生
  • 做包装看什么网站数据库跟网站内容
  • 网站是如何建立的呢WordPress授权站资源网
  • 做网站怎么选取关键词福州市建设工程工料机信息网站
  • 通辽建设网站公司网站内容更新该怎么做
  • 旅游网站 系统海外网络加速器免费
  • 自己做的网站怎么在百度可以查到互联网与网站有哪些
  • 网站建设的基本思路网站空间名
  • 网站 关键词iis 手机网站
  • 思睿鸿途北京网站建设实时热榜
  • 做网站一般有几个关键词万网域名的优势
  • 2017网站建设前景郑州做网站外包的公司
  • 中关村在线官方网站电脑wordpress菜单判断
  • 上海网站设计推荐刻百度竞价推广效果好吗