![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MCU
文章平均质量分 62
yangkunhenry
阿猫
展开
-
GD32 JTDI脚的复用问题
项目上有用到JTDI这个脚,复用做GPIO当时没有注意,直接用做了GPIO,一直无法控制这个Pin最后看了SPEC,发现这个默认是JTDI脚Default JTDI如果要用做GPIO的话(也就是PA15)的话要用REMAP的方式,这个顺序不要变,之所以这么说因为有网友在STM32上验证说:必须先打开时钟再Disable才可以 rcu_periph_clock_enable(RCU_AF); rcu_periph_clock_enable(RCU_GPIOA); gpi.原创 2021-01-21 11:58:14 · 2562 阅读 · 7 评论 -
GD32 ADC检测电压
GD32的参考电压在规格书上没有查到,但是由于GD32 和STM32的“某种关系“。。。STM32 的内部参考电压是1.2V,所以GD32的可以想象也是1.2V。(最终通过计算发现确实应该是1.2V)原创 2021-01-21 11:46:21 · 9916 阅读 · 0 评论 -
将中断向量表定位到RAM中,从RAM中引导执行中断服务
最近在解决一个问题,看到一篇代码,将中断向量表定位到RAM中,代码所在的文章在这里:https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2017/05/09/emu_e110_-_potential-i2Pn大家都知道,MCU的中断向量表通常是在flash的0x00000000地址,这一点从你编译...原创 2020-04-27 11:53:05 · 5040 阅读 · 0 评论 -
MCU 跳入到SystemInit之后就不往下走了
刚在测试一个USB的小例子的时候,下载好了之后,调试发现跑到startup_gd32e10x.s的SystemInit之后就不动了。;/* reset Handler */Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT...原创 2020-03-14 17:46:41 · 1589 阅读 · 0 评论 -
system_gd32e10x.c分析
/*! \brief setup the microcontroller system, initialize the system \param[in] none \param[out] none \retval none*/void SystemInit (void){ /* FPU settings */ /* 如果要使用户...原创 2020-03-14 14:00:49 · 3103 阅读 · 0 评论 -
SPI + DMA
说一说DMA是什么东西,DMA本身的意思是Direct Memory Access,直接存取访问,可以看到这只是一种存取方式,或者说读写方式,或是直白点来说,就是直接读取,说的太直白了,感觉这个DMA这个词在脑子里感觉有点SB了,就这么一个破烂玩意儿起这个这个类似遇到DNA一样的玩意儿。直接存取或者直接读取写入什么呢?当然是数据了,从哪里读,或者往哪里写呢?这个问题好,后面会说到读取的位置...原创 2020-03-08 21:58:45 · 10882 阅读 · 4 评论 -
SPI Flash读取操作
今天看到有人在问SPI flash读取数据的方法,为什么这样读取?先给出一个函数,SPI的读取函数:/*! \brief read a block of data from the flash \param[in] pbuffer: pointer to the buffer that receives the data read from the flash...原创 2020-03-06 21:04:36 · 5960 阅读 · 12 评论 -
GD32 starup_gd32e10x.s分析
;/*!; \file startup_gd32e10x.s; \brief start up file;; \version 2017-12-26, V1.0.0, firmware for GD32E10x;*/;;/*; Copyright (c) 2017, GigaDevice Semiconductor Inc.;; ...原创 2020-03-05 14:43:15 · 1123 阅读 · 0 评论 -
keil error:#8:missing closing quote 处理
在KEIL中Options for Target 'Flash' -> C/C++ -> Misc Controls添加“--locale=english”。原因:MDK5采用UTF-8,提示很多个这样的error:#8:missing closing quote 的错误信息。提供以下几种方式解决:第一种: 把报错提示的文件(包括.c和对应.h)用Notep...原创 2020-02-14 10:37:26 · 1010 阅读 · 0 评论 -
AW3215A 设置截止电流问题
void CHG_Done_Current_Set(void) { GPIO_PinModeSet(gpioPortC, CHG_CTRL_PIN, gpioModePushPull, 0); for(int itemp = 16; itemp > 1; itemp--); //延时5us左右 GPIO_PinModeSet(gpioPortC, CHG_CTRL...原创 2019-08-18 14:02:31 · 583 阅读 · 0 评论 -
GD32 低功耗下的唤醒问题(二)
接上一篇的问题DeepSleep 状态下能否用RTC来唤醒呢?先来看一个问题,前面介绍说,DeepSleep模式下只能EXTI的中断或者事件来唤醒问题来了,为什么只能通过EXTI的中断或者事件来唤醒?EXTI何方神圣?就是个中断控制器,Cortex M内核 集成了这个东西,哦,不,Cortex M 集成了叫NVIC的东西 (嵌套式矢量型中断控制器)。而EXTI...原创 2019-07-11 19:32:10 · 7316 阅读 · 6 评论 -
GD32 Systick系统定时器
之前没有在意,在demo程序的开始都有这样一个函数systick_config();以为是设置系统时钟啥的。今天看了下,做下标记这个函数对整个程序的作用1:提供一个函数函数(接口);2:在有RTOS系统的程序中用做调度的最小周期;(如果还有其他啥作用我没说到请拍砖上来。。。)对应这个systick.c有几点说的1:volatile static uint32_...原创 2019-07-05 14:01:47 · 8119 阅读 · 2 评论 -
GD MCU 例子分析
以一个I2c EEPROM为例子int main(void){ /* configure systick */ systick_config(); /* configure LEDs */ led_config(); /* configure USART */ gd_eval_com_init(EVAL_COM...原创 2019-06-15 16:19:37 · 3376 阅读 · 0 评论 -
GD32 RTC 调试之NVIC设置
一:设置NVIC组,使能 RTC irq,设置RTC优先级(抢占优先级和响应优先级)void nvic_configuration(void){ nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2); nvic_irq_enable(RTC_IRQn,1,0);}nvic_priority_group_set(NV...原创 2019-06-21 21:50:31 · 9866 阅读 · 1 评论 -
GD32 Timer调试
GD32Timr定时器看起来比较复杂啊。一看GD32E10x 的SPEC:一个高级定时器,三个通用定时器,还有一个基本定时器。项目上想用来做分时处理程序都不知道用哪个?就用通用的定时器 timer1看下clock treeTIMER1的时钟是CK_TIMER1,要提供CK_TIMER1需要TIMER1 enable并且需要提供具体的时钟具体的时钟if(APB1 pre...原创 2019-06-22 17:04:22 · 9143 阅读 · 4 评论 -
GD32 system clock
int main(void){ systick_config();void systick_config(void){ /* setup systick timer for 1000Hz interrupts */ if (SysTick_Config(SystemCoreClock / 1000U)){ /* capture error */ ...原创 2019-06-22 17:44:03 · 1335 阅读 · 0 评论 -
GD32 USART0 初始化问题
昨天在参照GD32的例子做GPIO Rmap为USART0的时候,发现USART0一直无法输出串口数据。最后在参照STM32的USART0初始化的时候,发现需要enable AFIO所以参照STM32就在初始化之前调用了下enable RCU_AF clock的动作,然后USART 就可以正常工作了。void dw_usart_config(void){ rcu_peri...原创 2019-06-18 16:32:28 · 7117 阅读 · 15 评论 -
GD32 开机直接进入了深度睡眠模式导致无法下载
刚开始研究GD32的功耗,烧录了开机直接进入深度睡眠的程序 /* PMU clock enable */ rcu_periph_clock_enable(RCU_PMU); /* enter Deep-sleep mode */ pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);导致在下次烧录的时候无法烧录。原因是刚开机就...原创 2019-07-01 18:43:54 · 6422 阅读 · 4 评论 -
GD32 之低功耗下的唤醒问题(一)
GD32 省电模式有三种如下之前用过的EFM32 有4中低功耗模式(对比下来就知道EFM32在功耗方面是多么领先)目前的场景是要循环的读取温度sensor的数据,每隔一定的时间读取一次,并且在整个设备运行期间,要及时的响应按键的长按和短按,首先想到的就是deep sleep模式了。OK,尝试一下,循环读取循环读取我采用timer的方式,每隔2s读一次,设定好timer,读取...原创 2019-07-11 15:45:03 · 6355 阅读 · 0 评论 -
GD32 调试TMP1075的问题
I2C口没有用对,本来应该是I2C1,我配置成了I2C0、 /* Tmp1075 i2c 7-bit address */ #define TMP1075_I2C_ADDRESS (0x48<<1) //这个地址要是slave address 左移一位 /* send slave address to I2C bus */ i2c_mast...原创 2019-06-18 21:08:32 · 1397 阅读 · 4 评论