[方案讨论] 航顺HK32F030Mxx官方例程调试笔记

[复制链接]
 楼主| t60yz 发表于 2023-1-12 10:40 | 显示全部楼层 |阅读模式

官方例程版本号:HK32F030Mxx_ExampleV1.0.7

1586563bf72e290c90.png

简单粗暴,话不多说,例程有如下结构:
3326163bf730151aea.png

2754263bf731c6f39e.png


 楼主| t60yz 发表于 2023-1-12 10:44 | 显示全部楼层
 楼主| t60yz 发表于 2023-1-12 10:45 | 显示全部楼层
5252263bf744409637.png
一共是57个例程(定时器有几个是重复的),后面我们将调试有代表性的例程。
 楼主| t60yz 发表于 2023-1-12 10:51 | 显示全部楼层
External Reset NRST Pin Test

可通过寄存器RCCͺCSR来判断MCU的复位源。
5035363bf7597f10d5.png
574763bf75a05b46b.png
 楼主| t60yz 发表于 2023-1-12 10:54 | 显示全部楼层
例程1.1是一个复位的程序
4872063bf764eaf6e7.png
 楼主| t60yz 发表于 2023-1-12 10:54 | 显示全部楼层
主要逻辑是

Uart_Config() 初始化串口,端口PA3和PD6分别作为串口的TX和RX.
 楼主| t60yz 发表于 2023-1-12 10:55 | 显示全部楼层
开启GPIOA和GPIOD的外设时钟RCC_AHBPeriph_GPIOA和RCC_AHBPeriph_GPIOD;
 楼主| t60yz 发表于 2023-1-12 10:59 | 显示全部楼层
UART1的外设使能RCC_APB2Periph_USART1
 楼主| t60yz 发表于 2023-1-12 11:00 | 显示全部楼层
配置GPIO的属性,和ST的库都是一样的,包括设置pin3,portA,AF功能,推挽方式, 无上拉电阻,速度高速10M,AF复用功能为AF1串口功能。
 楼主| t60yz 发表于 2023-1-12 11:00 | 显示全部楼层
设置串口传输参数,115200波特率,8位数据位(CR1),一位停止位,无奇偶校验位,无硬件流控制(CR3),发送器和接收器使能USART_CR1_RE,USART_CR1_TE。
 楼主| t60yz 发表于 2023-1-12 11:01 | 显示全部楼层
USART_CR1_UE ,UART使能
 楼主| t60yz 发表于 2023-1-12 11:02 | 显示全部楼层
1.Uart_Config() 初始化串口,端口PA3和PD6分别作为串口的TX和RX.

2.打印

3.Reset_Init();判断是上电复位POR还是引脚复位,并打印输出。
 楼主| t60yz 发表于 2023-1-12 11:03 | 显示全部楼层
复位标志位在两个寄存器中CR和CSR.为了区分,每个寄存器标志设置为8位,用第几位标识,高三位来表示寄存器。011是CSR,001是CR。这样在8位中就可以即表示标志位又表示寄存器。
 楼主| t60yz 发表于 2023-1-12 11:06 | 显示全部楼层
 楼主| t60yz 发表于 2023-1-12 11:15 | 显示全部楼层
判断了寄存器之后,把高三位去掉,读出寄存器
 楼主| t60yz 发表于 2023-1-12 11:24 | 显示全部楼层
 楼主| t60yz 发表于 2023-1-12 11:27 | 显示全部楼层
1进行左移相应的位数,和寄存器读出的值相与。如果不为0说明此位被置位。置位标志指示了复位原因
 楼主| t60yz 发表于 2023-1-12 11:27 | 显示全部楼层
打印输出复位原因

个人认为:这种方式稍微有点绕,标志位可以设置的比较简单,8位就行。也能迅速的定位到寄存器。缺点是不是太好理解。
 楼主| t60yz 发表于 2023-1-12 11:29 | 显示全部楼层
注意:程序中有个bug:

程序中串口初始化当中有个参数带错了,USART1_TX_PIN_SOURCE是正确的参数。
 楼主| t60yz 发表于 2023-1-12 11:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

189

主题

1191

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部