航顺HK32F030MF4P6 RST作GPIO SWCLK作EXTI5 SWDIO作ADC_AIN0

老习惯,先上代码

void Hw_Input_Chage_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);GPIOMUX->NRST_PIN_KEY = (uint32_t)(0x00005AE1);  //KEYGPIOMUX->PKG_PIN_SEL &= (uint32_t)(0xFFFFFF00);  //NRSTPA0_PIN_SEL = 0GPIOMUX->NRST_PIN_KEY = (uint32_t)(0x00005AE1);  //KEYGPIOMUX->NRST_PA0_SEL |= (uint32_t)(0x00000007); //bit0:NRST 1 PA0  bit1-2:SWCLK 11 PB5  bit5-6:SWDIO 00 PD5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //引脚输入模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;GPIO_InitStructure.GPIO_Schmit = GPIO_Schmit_Disable;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //内部上拉//NRST --> PA0//GPIO_IOMUX_ChangePin(IOMUX_PIN2, IOMUX_NRST_SEL_NRST);// TSSOP16 PIN2(NRST)PA0 IO  IOMUX_NRST_SEL_NRST   IOMUX_NRST_SEL_PA0GPIO_Init(GPIOA, &GPIO_InitStructure);
}

上面这段代码将SWCLK/SWDIO/RST复用成GPIO,配置RST为输入

void Hw_Key_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//SWCLK PB5 as GPIO//GPIO_IOMUX_ChangePin(IOMUX_PIN11, IOMUX_PB5_SEL_PB5); //TSSOP20PIN11(PD5)PB5 IOGPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //引脚输入模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //内部上拉GPIO_Init(GPIOB, &GPIO_InitStructure);/* 配置EXTI */EXTI_InitStructure.EXTI_Line = EXTI_Line5;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource5);EXTI_ClearITPendingBit(EXTI_Line5);NVIC_InitStructure.NVIC_IRQChannel = EXTI5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);}//SWCLK
unsigned char Hw_Key_Get_Power_Key_Value(void)
{return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);
}unsigned char g_temp = 0;void EXTI5_IRQHandler(void)
{if(EXTI_GetFlagStatus(EXTI_Line5) != RESET){g_temp = !g_temp;if(g_temp)Hw_Led_Green_Enable();else    Hw_Led_Green_Disable();EXTI_ClearITPendingBit(EXTI_Line5);}
}

上面这段代码将SWCLK配置为EXTI5

void Hw_Adc_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC, ENABLE);RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE );RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);//初始化模拟IO PD5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//GPIO_IOMUX_ChangePin(IOMUX_PIN2, IOMUX_PD5_SEL_PD5);// TSSOP20 PIN2(PD5) PD5 IOGPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_7);ADC_DeInit(ADC1);ADC_StructInit(&ADC_InitStructure);ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;ADC_Init(ADC1,&ADC_InitStructure);/* ADC1 regular channels configuration */ ADC_ChannelConfig(ADC1, ADC_Channel_0 , ADC_SampleTime_239_5Cycles);//ADC_GetCalibrationFactor(ADC1);/* Enable ADC1 */ADC_Cmd(ADC1, ENABLE);while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY)); ADC_StartOfConversion(ADC1);
}

上面这段代码将SWDIO配置为ADC的通道0

航顺的资料是偏少的,21论坛提问也很难得到有用的回复,建议大家还是仔细看看官方的例程,如果有问题,就仔细对照各个例程的代码。

资源已经上传,链接如下:
https://download.csdn.net/download/Dr_Haven/21567721

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7.2下编译安装git

centos最新的7.2版本,git居然是1.8,而最新的git版本是2.9 差的太多了,何况git2.0后有大更新。于是,我决定编译安装。中间有一点小破折,记录一下,备忘。 1,下载最新的源码,网址&#…

java务必让常量的值在运行期保持不变

/* 常量就是常量,在编译期就必须确定其值,不应该在运行期更改,否则程序的可读性会非常差 */public class proposal_2 {interface Const{public static final int RAND_CONSTnew Random().nextInt();}public static void main(String[] arg…

Java并发教程–信号量

这是我们将要进行的Java并发系列的第一部分。 具体来说,我们将深入探讨Java 1.5及更高版本中内置的并发工具。 我们假设您对同步和易失性关键字有基本的了解。 第一篇文章将介绍信号量-特别是对信号量进行计数 。 信号量是用于限制对资源访问的经常被误解和使用不足…

android surfaceview 大小_Android 使用Camera2 API采集视频数据

Android 视频数据采集系列的最后一篇出炉了,和前两篇文章想比,这篇文章从系统API层面进行一些探索,涉及到的细节更多。初次接触 Camera2 API 会觉得它的使用有些繁琐,涉及到的类有些多,不过就像第一次使用Activity, Fr…

java生成随机字符串

学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法。 1. org.apache.commons.lang3.RandomStringUtils类…

使用SharedPreferenes存取数据

//使用SharedPreference存储数据 public void on(View view){     //获取用户名和密码     String nameeditText1.getText().toString();     String numbereditText2.getText().toString();     //判断checkBox是否为勾选      CheckBox box(CheckBox…

使用Java VisualVM分析您的应用程序

当您需要发现应用程序的哪个部分消耗更多的CPU或内存时,必须使用探查器执行此操作。 默认情况下,Sun JDK中附带的一个探查器是Java VisualVM。 这个事件探查器非常简单易用,功能强大。 在这篇文章中,我们将看到如何安装它并使用它…

ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接

ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接安装ArcSDE for SQL Server,最后一步成功后的界面如下:在ArcMap中创建ArcSDE连接,截图如下:posted on 2016-08-0…

java反射main方法参数注意

public class ReflectMethodMain {public static void main(String[] args) throws Exception {Method methodMainTestArgument.class.getMethod("main", String[].class);/*jdk 1.4之前的版本不支持可变参数,对组类的参数会自动拆包然后用来匹配数据参数…

python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...

在Python语言中,可以使用ctypes模块调用其它如C语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件的功能及应用领域,减少重复编写代码、…

沁恒CH554 KEIL环境搭建

首先下载WCHISPTool_Setup.exe http://www.wch.cn/products/CH554.html 123这三个可下载的都下吧,后面开发都要用的 安装好后运行,菜单栏上,功能->添加WCH MCU到KEIL器件库 这时候在KEIL安装目录里面的UV4文件夹下可以看到wch.cdb的文件…

【CV论文阅读】Rank Pooling for Action Recognition

这是期刊论文的版本,不是会议论文的版本。看了论文之后,只能说,太TM聪明了。膜拜~~ 视频的表示方法有很多,一般是把它看作帧的序列。论文提出一种新的方法去表示视频,用ranking function的参数编码视频的帧序列。它使用…

java不要在常量和变量中出现易混淆的字母

public class proposal {public static void main(String[] args) {long i1l; System.out.println("i的两倍是:"(ii));System.out.println("i的两倍是:"ii); //注意此处和上面的有很大的区别} }输出:211/** 注意:* …

VS2019 WPF制作OTA上位机(一)新建工程

首先创建新项目,文件 -> 新建 -> 项目 下拉菜单选择C#和Window,选择WPF应用程序,下一步 输入项目名,下一步 这里选择.NET 5.0,也可以选择其他的,个人习惯.NET,点击创建 这时候出现初始…

户籍恢复需要体检吗_脑梗死后脚麻能恢复吗?需要多久能恢复呢?

脑梗死之后脚部麻木,这个有一部分是能够恢复的,但是相对而言,恢复的时间比较长,在临床当中出现脚麻主要是因为梗死破坏了患者的感觉神经中枢从而造成。脚部感觉麻木,瘙痒或者是有蚂蚁在上面爬的感觉。而且有的更加严重…

Alpha版本测试报告

一、测试计划 Alpha版本即将发布,我们组织队员进行这一版本的测试。 测试主要针对两方面:浏览器兼容性和功能完善性。 测试分兼容性测试与功能完善性两部分,兼容性测试分Windows操作系统、Linux系操作系统、Mac OS X操作系统以及手机端Androi…

在J2SE应用程序中模拟CDI的会话和请求范围

我们目前正在考虑将Naked Objects框架重构为使用JSR-330(依赖注入)和面向EE的老大哥JSR-299(CDI)。 使用香草JSR-330是不费吹灰之力的,但是我们想利用JSR-299中的一些不错的功能(例如事件和装饰器&#xff…

VS2019 WPF制作OTA上位机(二)获取bin文件路径

OTA升级是通过无线通信远程把bin文件内容传输到单片机,完成升级。 因此上位机需要获取bin文件的路径,读取bin文件内容,将内容分割依次发送(因为单片机的接收缓存不会开得和bin文件一样大(十几K甚至几十K)&a…

java 线程“生产/消费”模型1

/*资源类*/ public class ShareValue {private int total;public ShareValue(int total){this.totaltotal;}//生产void putValue(int value){totalvalue;}//消费资源int getValue(int value){if(total-value>0){total-value;}else{valuetotal;total0;System.out.println(&qu…

PHP - 代码分离

总代码&#xff1a; <?php/** Version&#xff1a;1.0* CreateTime&#xff1a;2015年11月11日* Author&#xff1a;HF_Ultrastrong*///引入公共文件,在公共文件中创建&#xff0c;相对于项目的绝对路径require dirname(__FILE__)./includes/common.inc.php; ?&…