Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded 如何为STM32核子F429ZI启用UART?_Embedded_Microcontroller_Stm32_Stm32f4 - Fatal编程技术网

Embedded 如何为STM32核子F429ZI启用UART?

Embedded 如何为STM32核子F429ZI启用UART?,embedded,microcontroller,stm32,stm32f4,Embedded,Microcontroller,Stm32,Stm32f4,我正在尝试为STM32核子-F429ZI启用UART。 我已经阅读了用户手册,它说默认情况下可以为虚拟com端口配置USART 3。这是我的密码。我可以看到USART 3有引脚D8和D9。这是我的密码。我做错了什么,我的com端口上看不到指纹 参考数据表- //测试打印消息 char usr_msg[256]; //结束 无效打印消息(字符*消息) { 对于(uint32_t i=0;iAFR[pin>=8]; 如果(AF 7)引脚-=8; *AFreg&=~(GPIO\u AFRL\u AF

我正在尝试为STM32核子-F429ZI启用UART。 我已经阅读了用户手册,它说默认情况下可以为虚拟com端口配置USART 3。这是我的密码。我可以看到USART 3有引脚D8和D9。这是我的密码。我做错了什么,我的com端口上看不到指纹

参考数据表-

//测试打印消息
char usr_msg[256];
//结束
无效打印消息(字符*消息)
{
对于(uint32_t i=0;i
您忘记设置要使用的AF模式(每个引脚可能有16种AF模式)。此时AF寄存器设置为0,这是错误的。您需要将其设置为
7

我不知道如何使用SPL库进行归档(已折旧,不再受支持)

这是注册版本

#define GPIO_AFRL_AFRL0_Msk     (GPIO_AFRL_AFRL0_0 | GPIO_AFRL_AFRL0_1 | GPIO_AFRL_AFRL0_2 | GPIO_AFRL_AFRL0_3)

void GPIO_SetAF(GPIO_TypeDef *gpio, unsigned pin, unsigned AF)
{
    volatile uint32_t *AFreg = &gpio -> AFR[pin >= 8];

    if(AF <= 15)
    {
        if(pin > 7) pin -= 8;

        *AFreg &= ~(GPIO_AFRL_AFRL0_Msk << (4 * pin));
        *AFreg |= (AF << (4 * pin));
    }
}
#定义GPIO_AFRL_AFRL0_Msk(GPIO_AFRL_AFRL0|GPIO_AFRL_AFRL0_1 | GPIO_AFRL0_2 | GPIO_AFRL0_3)
无效GPIO_设置AF(GPIO_类型定义*GPIO,无符号引脚,无符号AF)
{
易失性uint32_t*AFreg=&gpio->AFR[pin>=8];
如果(AF 7)引脚-=8;

*AFreg&=~(GPIO\u AFRL\u AFRL0\u Msk)它起作用了,我只是在GPIO初始化后添加了两行——GPIO\u PinAFConfig(GPIOD,GPIO\u PinSource8,GPIO\u AF\u USART3);GPIO\u PinAFConfig(GPIOD,GPIO\u PinSource9,GPIO\u AF\u USART3);
#define GPIO_AFRL_AFRL0_Msk     (GPIO_AFRL_AFRL0_0 | GPIO_AFRL_AFRL0_1 | GPIO_AFRL_AFRL0_2 | GPIO_AFRL_AFRL0_3)

void GPIO_SetAF(GPIO_TypeDef *gpio, unsigned pin, unsigned AF)
{
    volatile uint32_t *AFreg = &gpio -> AFR[pin >= 8];

    if(AF <= 15)
    {
        if(pin > 7) pin -= 8;

        *AFreg &= ~(GPIO_AFRL_AFRL0_Msk << (4 * pin));
        *AFreg |= (AF << (4 * pin));
    }
}