【沁恒RISC-V内核 CH582】移植射频代码01
[复制链接]
本帖最后由 yangjiaxu 于 2022-3-5 23:00 编辑
看到大家对CH582上手这么快,发了这么多的帖子,觉得真的挺好的,今天我也来凑个热闹, 之前申请理由是“使用CH582M-EVT的蓝牙功能,学习risc-V开发流程,主要使用其制作蓝牙RFID读卡器”。所以今天把射频基础功能部分移植到CH582上来。
首先,准备射频驱动,本次使用的是FM17522模块,所以驱动需要使用FM17522的,之前移植过STM32上,验证通过了,所以这部分代码可以直接拿过来使用。
由于都是C编写的,所以基本不需要修改,仅仅把IO管脚配置初始化这部分修改一下基本就可以了;
修改完之后,即可编译了,我这边编译的时候报错了,提示我找不到type_a.h和mifare_card.h等文件,一脸懵,毕竟第一次使用MounRiver Studio,不会添加头文件(Ps:如果有大神稍微指导一下就好了,嘿嘿,或者有MounRiver Studio使用说明也好,在此感激不尽),最后,我的解决方法比较简单粗暴,把找不到的头文件都放到EVT\EXAM\SRC\StdPeriphDriver\inc这个文件夹里了,之后编译就可以直接通过了。
然后我在主函数这块做了个功能测试,就是如果检测到模块存在会给我返回TRUE,如果这个标记是TRUE的话,我就让串口发送出个数据,表示RFID射频模块存在,当检测到模块通讯正常之后,就可以做读写卡操作了。
int main()
{
UINT8 len;
SetSysClock( CLK_SOURCE_PLL_60MHz );
/* 配置串口1:先配置IO口模式,再配置串口 */
GPIOA_SetBits( GPIO_Pin_9 );
GPIOA_ModeCfg( GPIO_Pin_8, GPIO_ModeIN_PU ); // RXD-配置上拉输入
GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_5mA ); // TXD-配置推挽输出,注意先让IO口输出高电平
UART1_DefInit();
pcd_Init();
if (TRUE == MCU_TO_PCD_TEST()) {
UART1_SendString( TxBuff, sizeof( TxBuff ) );
};
//#if 1 // 测试串口发送字符串
// UART1_SendString( TxBuff, sizeof( TxBuff ) );
//
//#endif
#if 1 // 查询方式:接收数据后发送出去
while( 1 )
{
len = UART1_RecvString( RxBuff );
if ( len )
{
UART1_SendString( RxBuff, len );
}
}
#endif
#if 0 // 中断方式:接收数据后发送出去
UART1_ByteTrigCfg( UART_7BYTE_TRIG );
trigB = 7;
UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
PFIC_EnableIRQ( UART1_IRQn );
#endif
while( 1 )
;
}
最后,代码确定是没有问题的,但是由于我的WCHLINK下周一才能到手,我想通过这个仿真器来做接下来程序的调试,等这个基础功能调试完成,就可以尝试加入蓝牙功能喽,小伙伴们,敬请期待吧
|