贴出来主函数
- #include <stdio.h>
- #include <stdint.h>
- #include "M451Series.h"
- #include "user_mb_app.h"
- /* ----------------------- Modbus includes ----------------------------------*/
- #include "mb.h"
- #include "mbport.h"
- #define PLL_CLOCK 72000000
- void SYS_Init(void)
- {
- /* Register write-protection disabled */
- SYS_UnlockReg();
- /*---------------------------------------------------------------------------------------------------------*/
- /* Init System Clock */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Enable HIRC clock (Internal RC 22.1184MHz) */
- CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);
- /* Wait for HIRC clock ready */
- CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
- /* Select HCLK clock source as HIRC and and HCLK clock divider as 1 */
- CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));
- /* Enable HXT clock (external XTAL 12MHz) */
- CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);
- /* Wait for HXT clock ready */
- CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);
- /* Set core clock as PLL_CLOCK from PLL */
- CLK_SetCoreClock(PLL_CLOCK);
-
- SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD0MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk);
- SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD0MFP_UART0_RXD | SYS_GPD_MFPL_PD1MFP_UART0_TXD);
- CLK_EnableModuleClock(UART0_MODULE);
- CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HXT, CLK_CLKDIV0_UART(1));
-
- CLK_EnableModuleClock(TMR0_MODULE);
- CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, 0);
-
- /* Register write-protection enabled */
- SYS_LockReg();
- }
- int32_t main()
- {
- SYS_Init();
- eMBInit( MB_RTU, 0x01, 0, 115200, MB_PAR_NONE );
- /* Enable the Modbus Protocol Stack. */
- eMBEnable( );
- for( ;; )
- {
- ( void )eMBPoll( );
- CLK_SysTickDelay(500000);
- }
- }
|