打印
[技术文档]

应用HK32F030M的SWD接口用作串口的操作实例

[复制链接]
1488|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
annko2005|  楼主 | 2020-7-20 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾,有客户在用HK32F030MJ4M6-SOP8时,需要用到串口。因为SOP8只有6个IO, 因此需要把SWD调试接口配置成IO来做串口的收发。下面代码就是实现SWD接口用作USART接口的配置:PD5(Tx),PB5(Rx)
void USART_GPIO_Configurature(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_1);   //PD5(TX)

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX,ENABLE);    //打开IOMux时钟
        //PD5_TX
        GPIO_IOMUX_ChangePin(IOMUX_PIN8,IOMUX_PD5_SEL_PD5);//SOP8 PIN8(PD5) set as PD5 IO
       
        //用PB5配置成RX
        GPIO_IOMUX_ChangePin(IOMUX_PIN5,IOMUX_PB5_SEL_PB5);//SOP8 PIN5(PB5) set as PB5 IO
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource5,GPIO_AF_1);
}

使用特权

评论回复

相关帖子

沙发
盾视工作室| | 2020-8-5 19:35 | 只看该作者
可以帮忙写代码吗?

使用特权

评论回复
板凳
shushi007| | 2020-8-6 01:01 | 只看该作者
annko2005 哥,你使用HK32F030M内置的HSI 32M作为时钟源,uart1串口波特率准确吗?我试了发现115200波特率的时候乱码很多,后来量了GPIO翻转速度是8.3M,我程序写的是代码GPIO翻转频率是HSI的1/4也就是说HSI实际频率是33.3M后来在代码里面讲32000000改为33300000,波特率正常没有乱码了。也就是说HSI出厂频率不准确。有什么办法校准吗?我怕其他单片机HSI偏差不一样,要怎么校准HSI?程序不放面改改uart为spi或者i2c。

使用特权

评论回复
地板
annko2005|  楼主 | 2020-8-6 08:37 | 只看该作者
盾视工作室 发表于 2020-8-5 19:35
可以帮忙写代码吗?

客户碰到问题,我们会尽力协助,但是我们不帮助客户写代码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

146

帖子

12

粉丝