完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
从今天开始,我将逐一调试航顺HK32F030Mxx官网例程,有兴趣的同学欢迎一起研究学习。
官方例程版本号:HK32F030Mxx_ExampleV1.0.7 手里没有例程的同学可以私信我,私信发给你。 简单粗暴,话不多说,例程有如下结构:
1.reset 1.11.1 External Reset NRST Pin Test 可通过寄存器RCCͺCSR来判断MCU的复位源。 例程1.1是一个复位的程序 主要逻辑是 1.Uart_Config() 初始化串口,端口PA3和PD6分别作为串口的TX和RX. (1) 开启GPIOA和GPIOD的外设时钟RCC_AHBPeriph_GPIOA和RCC_AHBPeriph_GPIOD; (2)UART1的外设使能RCC_APB2Periph_USART1 (3)配置GPIO的属性,和ST的库都是一样的,包括设置pin3,portA,AF功能,推挽方式, 无上拉电阻,速度高速10M,AF复用功能为AF1串口功能。 (4)设置串口传输参数,115200波特率,8位数据位(CR1),一位停止位,无奇偶校验位,无硬件流控制(CR3),发送器和接收器使能USART_CR1_RE,USART_CR1_TE。 (5)USART_CR1_UE ,UART使能 2.打印 3.Reset_Init();判断是上电复位POR还是引脚复位,并打印输出。 (1)复位标志位在两个寄存器中CR和CSR.为了区分,每个寄存器标志设置为8位,用第几位标识,高三位来表示寄存器。011是CSR,001是CR。这样在8位中就可以即表示标志位又表示寄存器。 (2)判断了寄存器之后,把高三位去掉,读出寄存器 (3)1进行左移相应的位数,和寄存器读出的值相与。如果不为0说明此位被置位。置位标志指示了复位原因 (4)打印输出复位原因 个人认为:这种方式稍微有点绕,标志位可以设置的比较简单,8位就行。也能迅速的定位到寄存器。缺点是不是太好理解。 注意:程序中有个bug: 程序中串口初始化当中有个参数带错了,USART1_TX_PIN_SOURCE是正确的参数。 后面有bug或者异常我也会标识出来,节省大家的时间。 现象比较明确,就是串口打印输出复位原因。程序执行和期望一样,调试通过。 |
||
|
||
只有小组成员才能发言,加入小组>>
3320 浏览 9 评论
2998 浏览 16 评论
3496 浏览 1 评论
9066 浏览 16 评论
4089 浏览 18 评论
1187浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
602浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2339浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:31 , Processed in 1.232307 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号