
单片机
文章平均质量分 66
单片机逻辑相关内容
Can!
这个作者很懒,什么都没留下…
展开
-
RTT打印log
RTT打印log原创 2023-04-13 17:44:36 · 479 阅读 · 0 评论 -
keil编译结果
keil编译结果原创 2023-05-17 11:34:43 · 413 阅读 · 0 评论 -
ARM基础知识
ARM基础知识原创 2023-05-25 17:55:31 · 786 阅读 · 0 评论 -
cortex-M3生成的.map文件
cortex-M3生成的.map文件原创 2023-06-01 17:55:08 · 124 阅读 · 0 评论 -
C语言字符串常用
【代码】C语言字符串常用。原创 2023-07-06 11:06:20 · 148 阅读 · 1 评论 -
Flash读写结构体类型数据常用操作
Flash读写结构体类型数据原创 2023-07-06 10:47:07 · 1034 阅读 · 1 评论 -
C语言循环读写Flash
循环读写Flash原创 2023-11-27 16:49:42 · 527 阅读 · 0 评论 -
GPIO八种工作模式
GPIO八种工作模式原创 2024-02-15 16:05:24 · 5026 阅读 · 0 评论 -
USART--串口通信
USART--串口通信原创 2024-02-16 19:39:04 · 1190 阅读 · 0 评论 -
IIC--集成电路总线
IIC--集成电路总线原创 2024-02-16 20:06:22 · 1763 阅读 · 0 评论 -
SPI--串行外设接口
SPI--串行外设接口原创 2024-02-17 19:41:17 · 270 阅读 · 0 评论 -
定时器(基本定时器、通用定时器、高级定时器)
一般先要设置输入捕获的边沿检测极性,如:我们设置上升沿检测,那么当检测到上升沿时,定时器会把计数器 CNT的值锁存到相应的捕获/比较寄存器 TIMx_CCRy 里, y=1~4。在这个循环中,改变 CCRx 的值,就可以改变 PWM 的占空比,改变 ARR 的值,就可以改变 PWM 的频率,这就是 PWM 输出的原理。重复计数器的定时器,定时器每次发生上溢或下溢时,重复计数器的值会减一,当重复计数器的值为 0 时,再发生一次上溢或者下溢才会生成定时器更新事件。重复计数器寄存器是具有影子寄存器的。原创 2024-02-17 20:12:52 · 5477 阅读 · 0 评论 -
MCU中断控制
每次触发滴答定时器中断,系统节拍中断服务程序会调用函数xTaskIncrementTick()来判断,如果该函数返回值为真(不等于pdFALSE),说明处于就绪态任务的优先级比当前运行的任务优先级高,这会触发一次PendSV中断,进行上下文切换。(1) 它是内核的器件,M3/M4/M7 内核都是支持 256 个中断,其中编号为 1~255,而 0 表示没有异常,这里的编号单纯只是这些中断的一个序号,而不是优先级。(想了解的可以搜索:CM3的两种模式,两种权限,以及两个指针MSP与PSP,中断与异常)。原创 2024-02-17 21:06:50 · 1747 阅读 · 0 评论 -
Flash存储
只有在完成编程操作后,才能正确处理读操作。(7)在执行闪存写操作时,任何对闪存的读操作都会锁住总线,在写操作完成后读操作才能正确地进行。(8)STM32F4 的 FLASH 在编程的时候,也必须要求其写入地址的 FLASH 是被擦除了的(也就是其值必须是 0xFFFFFFFF),否则无法写入。(3) Flash存储器通常被分为块、扇区、页,一般可以按块、扇区、页擦除,但每个芯片的flash都会不一样,要具体说明;(1) flash的总大小,代码占用的大小,每一个扇区对应的每一页的大小;原创 2024-02-17 20:17:50 · 430 阅读 · 0 评论 -
RTC时钟
当亚秒、秒、分、小时、日期分别与闹钟寄存器 RTC_ALRMASSR/RTC_ALRMAR 和 RTC_ALRMBSSR/RTC_ALRMBR 中的值匹配时,则可以产生闹钟(需要适当配置)。实时时钟一般表示为:时/分/秒/亚秒。常用,例如,RTC程序中,我们向DR1写入0x5050,开机读出寄存器值看是否有改变,检测是否已经配置过RTC,如果不是写入的值,说明电池有掉过电,需要重新设定时间和日期。(3) 读出bkr(0)寄存器的值,判断是否被修改过,如果修改过,说明电池有重新上电,要重新设置时间和日期。原创 2024-02-17 20:51:22 · 1511 阅读 · 0 评论 -
ADC--模拟量转换成数字量
(1) ADC 的输入通道, ADC1 有 16 个外部通道和 3 个内部通道,而 ADC2和 ADC3 只有有 16 个外部通道。ADC 转换完成后的数据输出寄存器。(1)规则组:16个规则通道共用一个ADC_DR 寄存器保存转换结果,所以多通道转换要用扫描模式,并且要开DMA保存转换结果。(3)规则和注入组转换结束时还可以产生 DMA 请求,把转换好的数据存储在内存里面,防止读取不及时数据被覆盖。:通过写 ADC_CR2 寄存器的 ADON 这个位来控制,写 1 就开始转换,写 0 就停止转换,原创 2024-02-17 19:57:26 · 2363 阅读 · 0 评论 -
DMA--直接存储器访问
双缓冲模式下,两个存储器地址指针都有效,即DMA_SxM1AR寄存器将被激活使用。比如SPI3_RX请求,占用DMA1的数据流0的通道0,因此使用该请求时,需要在把DMA_S0CR寄存器的CHSEL[2:0]设置为“000”, 此时相同数据流的其他通道不被选择,处于不可用状态,比如此时不能使用数据流0的通道1即I2C1_RX请求。:在外设到存储器的直接模式下,因为存储器总线没得到授权,使得先前数据没有完成被传输到存储器空间上,此时DMEIF标志位被置1,如果使能DMEIE中断控制位将产生直接模式错误中断。原创 2024-02-17 20:44:12 · 1263 阅读 · 0 评论 -
MCU看门狗
设置计数器值为 0x7F,窗口寄存器为 0x5F,分频数为 8,然后可由前面的公式得到窗口上限时间 Twwdg=4096×8×(0x7F-0x5F)/42MHz=24.98ms,窗口下限时间 Twwdg=4096×8×(0x7F-0x3F) /42MHz=49.97ms,即喂狗的窗口区间为 24.98~49.97ms。:上限值:W[6:0] 是 WWDG_CFR 寄存器的低 7 位,用于与递减计数器 T[6:0]比较的窗口值,也就是我们说的上限值,由用户设置。原创 2024-02-17 21:15:31 · 2489 阅读 · 0 评论 -
MCU电源控制(PWR)与低功耗
比如芯片从1.6V~3.6V都可以工作,但是芯片在低电压时某些内部模块可能不能工作,或者1.6V的时候芯片频率只能工作在50MHz,而3.3V的时候可以工作在100MHz。进入停止模式,所有的时钟都关闭,所有的外设也就停止了工作。其本质也是一个电压检测过程,当芯片输入电压VCC>Vpor电压时,POR模拟模块将输出POR信号提供给全芯片使用,这是一个从复位到复位释放的过程。目的模拟检测可以通过中断的方式告诉软件,我这里电压和你设置要求不符合了,你可以软件采取动作了,它不再是单纯电压低了就复位。原创 2024-02-17 20:59:55 · 2228 阅读 · 0 评论 -
GD32F303VET6裸板调试遇到问题
GD32F303VET6裸板调试遇到问题原创 2024-02-15 15:46:16 · 703 阅读 · 0 评论 -
GD32F303 按键常用操作
按键常用操作原创 2023-11-24 16:25:27 · 283 阅读 · 0 评论 -
GD32F303 步进电机驱动
步进电机驱动原创 2023-11-28 17:26:27 · 665 阅读 · 0 评论 -
GD32F303 飞梭编码器
飞梭编码器原创 2023-11-28 11:39:00 · 526 阅读 · 0 评论